Scripting mit tmux?

1484
tjt263

Kann ich mehrere Anweisungen bash/ shAnweisungen zum Öffnen und Ausführen in separaten tmuxFenstern ausführen ?

Ich habe ungefähr 5 verschiedene Befehle, die gleichzeitig oder nacheinander ausgeführt werden müssen.

Normalerweise tippe ich sie alle manuell in ihre separaten Fenster ein. Ich habe ein bisschen ein benutzerdefiniertes Layout.

0

1 Antwort auf die Frage

1
ktsujister

Wenn Sie sich bereits in der tmux-Sitzung befinden, können Sie einige Befehle in einem neuen Fenster wie folgt ausführen:

$ tmux neww 

Auch wenn Sie das Fenster teilen und den Befehl ausführen wollen:

$ tmux splitw 

Hier ein Beispiel für die Ausführung von tail -f für mehrere Dateien im Protokollverzeichnis:

$ find logs/ -name '*.log' | xargs -n1 -I{} bash -c 'tmux splitw "tail -f $1"; tmux select-layout main-vertical' -- {} 

tmux select-layout Teil ist zum Fixieren des Scheibenlayouts.


als Kommentar hinzugefügt:

Sie können verwenden:

$ tmux new 

Wenn Sie nicht in der Tmux-Sitzung sind. So können Sie diese kombinieren.

test.sh:

tmux new -s foo "bash tmux-test.sh; wait" 

tmux-test.sh:

tmux neww htop tmux neww htop tmux splitw htop 

und dann test.sh ausführen

Cool, aber was ist, wenn ich nicht schon in einer `tmux'-Sitzung bin? Ich hätte es gerne als `.sh`-Skript (oder ähnliches) gespeichert, wenn möglich. Ich denke, du könntest hier auf etwas stehen. Vielen Dank! tjt263 vor 8 Jahren 1
Fenster und Fenster, die in den obigen Befehlen geöffnet werden, werden geschlossen, wenn der Befehl {} beendet wird. Zum Beispiel startet "tmux new date" ein neues Fenster, in dem "date" ausgeführt wird. Da der Befehl "date" sofort beendet wird, wird auch die Sitzung "tmux" beendet. ktsujister vor 8 Jahren 0
Funktioniert nicht für mich. BonsaiOak vor 7 Jahren 0