Wenn Sie wirklich tmux verwenden müssen und Ihre Befehle nicht interaktiv sind, können Sie dem ersten Befehl einen zweiten Befehl hinzufügen, der auf irgendeine Weise signalisiert, dass der erste Befehl abgeschlossen ist. Eine einfache Möglichkeit, dies mit einem integrierten tmux-Befehl auszuführen, ist wait-for
die Option -L channel
zum Sperren und -U channel
Entsperren. Sie können viele beliebige Kanäle haben. Wenn Sie einen Kanal sperren, werden weitere Sperrversuche bis zum Entsperren blockiert.
Hier ist ein Beispiel:
tmux wait-for -L my1\; \ send-keys 'sleep 5' Enter 'tmux wait-for -U my1' Enter\; \ wait-for -L my1
Dies sperrt den Kanal my1
, sendet den Befehl sleep 5
an die Shell, unmittelbar gefolgt vom tmux wait-for
Shell-Befehl zum Entsperren, und versucht dann, die Sperre erneut zu erhalten, sodass er blockiert.
Nach 5 Sekunden ist der Schlaf beendet, die Shell führt die Tmux-Sperre aus, und jetzt kann die Sperre aufgehoben werden. Erst dann kehrt der obige Tmux-Befehl zurück.
Um wieder zur Normalität zurückzukehren, wait-for -U
sollten Sie jetzt einen send-keys ... wait-for -U ...
Befehl ausführen, indem Sie wie oben beschrieben einen anderen kombinierten Befehl ausgeben .