Es gibt einige Zeilen meiner tmux.conf, die ich nur ausführen möchte, wenn mein Betriebssystem Mac ist. Ich möchte meine tmux.conf jedoch auf mehreren verschiedenen Betriebssystemen verwenden. Wie kann ich einen Befehl von dem Betriebssystem abhängig machen, auf dem tmux gerade ausgeführt wird?
41
Antworten:
Verwenden Sie den
if-shell
Befehl:Möglicherweise möchten Sie betriebssystemspezifische Befehle in separaten Dateien ablegen und über den Befehl "Quelldatei" ausführen.
quelle
if-shell
undrun-shell
tmux sind derzeit asynchron (ab tmux 1.7). Sie führen ihren Shell-Befehl effektiv im Hintergrund aus, und alle tmux- Befehle, die sie ausführen, werden nur nach Befehlen ausgeführt, die nach demif-shell
oderrun-shell
-Befehl selbst kommen ( tmux ist single-threaded). Wenn Sieif-shell
oderrun-shell
in verwenden~/.tmux.conf
(und alle Sitzungen, Fenster oder Fensterbereiche, die explizit durch erstellt wurden~/tmux.conf
), fehlen effektiv alle durchif-shell
oderrun-shell
Befehle angeordneten tmux- Konfigurationen .if-shell
funktioniert bei mir mit tmux 1.8 wie erwartet. Ich benutze es, um set-titles-string nur für SSHJimeh https://github.com/jimeh/dotfiles/commit/3838db8 hat die Antwort. Auch Chris Johnsen ist es zu verdanken, dass er den Leuten in der GitHub-Frage hier geholfen hat: https://Github.com/ChrisJohnsen/tmux-MacOSX-pasteboard/issues/8#issuecomment-4134987
Grundsätzlich richten Sie ein Shell-Skript mit dem Namen ein
safe-reattach-to-user-namespace
, das prüft, ob der Befehl real reattach ... vorhanden ist.quelle