51 votes

Configuration de tmux en fonction du système d'exploitation

Il y a quelques lignes de mon tmux.conf que j'aimerais voir exécuté uniquement si mon système d'exploitation est Mac. Cependant, j'aimerais utiliser mon tmux.conf sur plusieurs systèmes d'exploitation différents. Comment puis-je rendre une commande conditionnelle au système d'exploitation sur lequel tmux est en cours d'exécution ?

65voto

chepner Points 6381

Utiliser le if-shell mando:

if-shell "uname | grep -q Darwin" "tmux-cmd1; tmux-cmd2;" "tmux-cmd3; tmux-cmd4"

Vous pouvez placer les commandes spécifiques au système d'exploitation dans des fichiers séparés et les exécuter via la commande "fichier-source".

if-shell "uname | grep -q Darwin" "source-file .tmux-macosx" "source-file .tmux-linux"

13voto

Jeff Albert Points 1967

Jimeh https://github.com/jimeh/dotfiles/commit/3838db8 a la réponse. Chris Johnsen mérite également d'être félicité pour l'aide qu'il a apportée sur le problème de GitHub : https://Github.com/ChrisJohnsen/tmux-MacOSX-pasteboard/issues/8#issuecomment-4134987

En fait, vous créez un Shell Shell appelé safe-reattach-to-user-namespace qui vérifie l'existence de la vraie commande reattach....

#! /usr/bin/env bash

# If reattach-to-user-namespace is not available, just run the command.
if [ -n "$(command -v reattach-to-user-namespace)" ]; then
  reattach-to-user-namespace $@
else
  exec "$@"
fi

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X