Ich benutze tmux auf den meisten Boxen, aber nicht auf allen.
Ich habe die folgende Zeile in meiner .bashrc-Datei:
[ -z "$TMUX" ] && export TERM=xterm-256color && exec tmux
die tmux aufrufen, wenn es existiert.
Ich dachte das [ -z $TMUX ]
bedeutete, dass es nur verwendet werden würde, wenn tmux existiert.
Allerdings auf einem anderen System, ohne tmux, bekomme ich
-bash: exec: tmux: nicht gefunden
und der Anmeldeversuch schlägt fehl
Auf meinem Hauptsystem sehe ich
$ echo $TMUX
/private/var/folders/ks/266xy5lj7x35gfj4csc66444b48rvq/T/tmux-373580663/default,55084,4
Ich habe es auch nur versucht [ $TMUX ]
(dh nein -z
), aber das hat nicht geholfen
Ich suche auch nach einer robusten Lösung, die sowohl unter Ubuntu als auch unter OSX funktioniert
which tmux &>/dev/null && ...
. Die Ausgabe zu erfassen und zu testen, ob sie leer ist, ist nur schmutzig :-)TERM=xterm-256color exec tmux
:-).bashrc
, dann sind Sie richtig, es ist ein Problem. Eine vollständige Lösung würde eine Kombination aus der Überprüfung beinhalten, ob sie$TMUX
leer ist und ob die ausführbare Datei vorhanden ist.Ok, wenn Sie also
tmux
nur starten möchten, wenn es in vorhanden ist$PATH
und noch nicht ausgeführt wird, können Sie Folgendes tun:Noch kürzer:
Der zweite fordert
tmux
die Rückgabe von 0 auf, wenn${TMUX}
nicht gesetzt ist,&&
wenn true, wird die Shell ausgeführttmux -2
, um 256-Farben zu erzwingen. Es wird immer nur true zurückgegeben, wenn es ausgeführt werdentmux
kann$PATH
und wenn die Umgebungsvariable$TMUX
nicht vorhanden ist.quelle
:
" ist interessant!Verwenden
Wenn ja
tmux
,which tmux
wird der Pfad zurtmux
Binärdatei ausgewertet , daher zutrue
. Wenn dies nicht der Fall isttmux
, wird die leere Zeichenfolge ausgewertetfalse
.quelle