Gibt es eine Möglichkeit, den Fensterindex eines bestimmten Fensters in Tmux herauszufinden?
Ich weiß, dass ich so etwas ausführen kann wie:
tmux display-message -p "#{pane_index}"
Das funktioniert aber nur im aktiven Bereich. Ich möchte, dass es für jeden Bereich funktioniert, in dem es ausgeführt wird. Normalerweise ist es natürlich schwierig, ein Skript in einem Bereich auszuführen, der nicht der aktive Bereich ist. Sie können dies jedoch tun, wenn Sie die :set-window-option synchronize-panes
Eingabe zwischen allen Fenstern synchronisieren.
Wie würde ich das benutzen?
In meinem Job muss ich gleichzeitig eine Verbindung zu mehreren identischen Servern in einem Load Balancer herstellen, was ich mit Tmux-Fenstern mache. Normalerweise aktiviere ich die Funktion zum Synchronisieren von Fenstern, damit ich alles, was ich tippe, gleichzeitig an jedes Fenster senden kann. Das funktioniert super.
Ich finde, dass ich manchmal eine Verbindung zu den Servern herstellen und für jeden Bereich etwas Einzigartiges tun möchte, wobei ich jedes Mal denselben "Fensterindex" verwende. Zum Beispiel würde ich einen Befehl wie folgt ausführen:
ssh NODE_$(get_pane_number)
Wenn es synchronisiert und in jedem Bereich ausgeführt wird, werden die folgenden Befehle in einem Fenster mit 4 Fenstern ausgeführt:
ssh NODE_0
im Bereich 0
ssh NODE_1
in Bereich 1
ssh NODE_2
in Bereich 2
ssh NODE_3
in Bereich 3
Ich könnte dies natürlich skripten, aber das würde nur gut funktionieren, bevor ich anfing, Eingaben zu synchronisieren. Es gibt Zeiten, in denen ich dies tun möchte, nachdem ich auch mit der Synchronisierung von Eingaben begonnen habe.