Réponses:
tmux \
new-session 'compass watch /path/to/project1/compass/' \; \
split-window 'compass watch /path/to/project2/compass/' \; \
detach-client
La new-session
commande (qui crée une nouvelle tmux
session) et la split-window
commande (qui divise la fenêtre actuelle en deux volets) dans tmux
prend des commandes shell facultatives à exécuter. Le detach-client
fait l'évidence à la fin.
Si vous voulez une division horizontale (deux volets côte à côte), utilisez split-window -h
la commande ci-dessus.
Lorsque vous envoyez plusieurs tmux
commandes, tmux
vous devez les séparer par ;
. Le ;
doit être protégé du shell en le citant / en l'échappant ( ';'
, ";"
ou \;
), pour empêcher le shell de l'interpréter comme la fin de la tmux
commande.
J'ai divisé le tout en lignes distinctes pour plus de lisibilité. Si vous faites cela dans un script (que je recommande), assurez-vous qu'il n'y a rien après la finale \
sur chaque ligne.
Rattacher à la session avec tmux a
, tmux attach
ou tmux attach-session
(ce sont tous équivalents).
La tmux
session se terminera une fois l'exécution des deux commandes terminée.
Cela n'a pas fonctionné pour moi (j'essayais de faire quelque chose comme 'ls -la'). Qu'est-ce que c'était:
tmux new-session -d bash
tmux split-window -h bash
#sends keys to first and second terminals
tmux send -t 0:0.0 "<my-first-command>" C-m
tmux send -t 0:0.1 "<my-second-command>" C-m
tmux -2 attach-session -d
Cela m'a permis d'exécuter des trucs assez génériques et même si ça a l'air moche, c'est assez fonctionnel.
Il suffit de le laisser ici au cas où d'autres personnes chercheraient la même chose.