Exécuter la commande dans une session tmux détachée


24

C'est probablement simple, mais je ne peux vraiment pas savoir comment vous le faites. J'ai lu les pages de manuel et googlé sans résultats.

Problème: comment exécuter une commande dans une fenêtre tmux détachée?

Exemple: je veux que ma fenêtre détachée 'foo' exécute 'ls', mais je veux le faire à partir d'un autre terminal.

J'ai essayé des trucs comme: 'tmux -t foo ls' sans résultats.

Réponses:


39

La commande est send. sendest une séquence de touches, alors traitez-la en conséquence (par exemple, vous voudrez probablement ENTER). La cible est spécifiée avec -t. Vous pouvez vouloir foo.0 ou foo.1 selon le volet que vous souhaitez atteindre.

tmux send -t foo.0 ls ENTER

sendest l'abréviation de send-keys, qui se trouve dans les pages de manuel, mais peut-être un peu difficile à trouver dans ce mile de texte.


Très bonne réponse. Très instructif et fonctionne un charme. Merci!
Accatyyc

La solution la plus majestueuse pour ce problème! Un grand merci!
3bdalla

2
Notez que pour cibler une fenêtre spécifique dans une session spécifique, vous les séparez par deux points =>tmux send-keys -t foosession:foo.0 ls ENTER
nickspoon

Si vous souhaitez envoyer des espaces entre les mots, vous devez entourer la commande de deux apostrophes. La commande ENTRÉE doit toujours être à l'extérieur. Cela fonctionne pour moi sur UBUNTU 16.04: tmux send -t session_name 'echo durp'ENTRÉE
TrollAxeThrower
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.