Bash Script til Tmux: Tilslut Session, Vælg Vindue og Kør Kommando

Hvordan skrives et bash script, der tilslutter sig en navngiven tmux session, vælger et vindue (eller en rude) i den session og kører en kommando i det valgte vindue (eller den valgte rude)?

For at skrive et bash script, der tilslutter sig en navngiven tmux session, vælger et vindue og kører en kommando, skal du oprette en fil, gøre den eksekverbar, og tilføje et script, der tjekker sessionens eksistens og sender kommandoen til det valgte vindue.

Hvordan skrives et bash script, der tilslutter sig en navngiven tmux session, vælger et vindue (eller en rude) i den session og kører en kommando i det valgte vindue (eller den valgte rude)?

For at skrive et bash script, der tilslutter sig en navngiven tmux session, vælger et vindue (eller en rude) i den session og kører en kommando i det valgte vindue (eller den valgte rude), kan du følge disse trin:

  1. Opret en ny fil med en passende navn, f.eks. tmux_script.sh.
  2. Gør filen eksekverbar ved at køre chmod +x tmux_script.sh.
  3. Rediger filen og tilføj følgende bash script:
#!/bin/bash

# Navnet på tmux sessionen
SESSION_NAME="din_session"

# Navnet eller nummeret på vinduet
WINDOW_NAME="dit_vindue"

# Kommandoen, der skal køres
COMMAND="din_kommando"

# Tjek om sessionen allerede kører
tmux has-session -t $SESSION_NAME 2>/dev/null

if [ $? != 0 ]; then
  echo "Sessionen $SESSION_NAME findes ikke."
  exit 1
fi

# Vælg vinduet i sessionen og kør kommandoen
tmux send-keys -t ${SESSION_NAME}:${WINDOW_NAME} "$COMMAND" C-m

Forklaring af scriptet:

  • #!/bin/bash: Angiver, at scriptet skal køres med bash.
  • SESSION_NAME="din_session": Definerer navnet på tmux sessionen.
  • WINDOW_NAME="dit_vindue": Definerer navnet eller nummeret på vinduet i sessionen.
  • COMMAND="din_kommando": Definerer kommandoen, der skal køres i det valgte vindue.
  • tmux has-session -t $SESSION_NAME 2>/dev/null: Tjekker, om sessionen allerede kører.
  • if [ $? != 0 ]; then ... fi: Hvis sessionen ikke findes, udskrives en fejlmeddelelse, og scriptet afsluttes.
  • tmux send-keys -t ${SESSION_NAME}:${WINDOW_NAME} "$COMMAND" C-m: Sender kommandoen til det valgte vindue i sessionen og trykker Enter (C-m).

Dette script vil tilslutte sig den navngivne tmux session, vælge det specificerede vindue og køre den angivne kommando i det vindue.