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.

Accatyyc
la source

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.

84104
la source
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