Verwenden von Umgebungsvariablen in tmux.conf-Dateien

12

Ist es möglich, eine Umgebungsvariable in einer Datei tmux.conf zu verwenden? Ich versuche, einen Standardpfad für eine Umgebungsvariable festzulegen. Derzeit versuche ich Folgendes:

set -g default-path $MYVAR

Außerdem möchte ich überprüfen, ob $ MYVAR bereits festgelegt ist, damit ich Folgendes tun kann:

if($MYVAR == "") set-environment -g MYVAR /somepath/

Irgendwelche Ideen?

Digitale Kräfte
quelle

Antworten:

12

Ja, es sieht so aus, als ob es möglich ist, Shell-Variablen in einer .tmux.confDatei zu erweitern. Es sieht so aus, als wäre es nicht erforderlich, aber es ist eine gute Idee, sie zu zitieren, insb. Ich konnte dies gerade erfolgreich mit den Statusleistenoptionen tun.

# In ~/.tmux.conf:
set -g status_left "$MYVAR etc: "

$ export MYVAR="Shell stuff"
$ tmux

Ich kenne keine 'if' oder andere Kontrollstrukturen in der Konfiguration, aber es könnte solche geben.

Caleb
quelle
Ich kann dies nicht in einer tmux-Skriptdatei zum Laufen bringen. Ich bin sicher, dass $ MYVAR festgelegt ist, und ich führe das Skript aus und es schlägt fehl. setze -g Standardpfad "$ MYVAR" split-window -h es teilt das Fenster, aber der Standardpfad ist nicht auf $ MYVAR
Digital Powers
1
ok, ich habe herausgefunden, wo die Dinge zusammenbrechen. Wenn ich die Umgebungsvariable setze, bevor ich tmux ausführe, kann ich sie in meiner Datei tmux.conf verwenden. Wenn ich die Umgebungsvariable entweder in tmux.conf mit set-environment oder nach tmux in tmux setze, lade ich die tmux.conf neu, ohne meine neuen Variablen zu verwenden, die ich gesetzt habe. Irgendeine Idee warum?
Digital Powers
Die Shells, die Sie in tmux ausführen, sind untergeordnete Prozesse von tmux. Ändern Dinge in diesen Umgebungen sind nicht zu propagieren zurück auf die Leitung zum tmux geordneten Prozess. Es funktioniert nur umgekehrt, da tmux ein untergeordnetes Element der Shell wird, von der aus Sie es gestartet haben. Ich gehe davon aus, dass das Neuladen der Konfiguration insofern ähnlich ist, als es ein neues untergeordnetes Element des übergeordneten Prozesses startet.
Caleb