Запустите команду в отдельном сеансе tmux

24

Это, наверное, просто, но я действительно не могу понять, как ты это делаешь. Я прочитал справочные страницы и гуглил безрезультатно.

Проблема: Как мне запустить команду в отдельном окне tmux?

Пример: я хочу, чтобы мое отдельное окно 'foo' запускало 'ls', но я хочу сделать это из другого терминала.

Я пробовал что-то вроде: 'tmux -t foo ls' безрезультатно.

Accatyyc
источник

Ответы:

39

Команда есть send. sendявляется ключевой последовательностью, поэтому относитесь к ней соответственно (например, вы, вероятно, захотите ENTER). Цель указана с -t. Вы можете хотеть foo.0 или foo.1 в зависимости от панели, которую вы хотите поразить.

tmux send -t foo.0 ls ENTER

sendэто сокращение от send-keys, которое находится на страницах руководства, но, возможно, его немного сложно найти в этой миле текста.

84104
источник
Отличный ответ. Очень информативно и работает шарм. Благодарность!
Accatyc
Самое величественное решение этой проблемы! Огромное спасибо!
3бдалла
2
Обратите внимание, что для нацеливания на конкретное окно в конкретном сеансе вы разделяете их двоеточием =>tmux send-keys -t foosession:foo.0 ls ENTER
nickspoon
Если вы хотите отправить пробелы между словами, вы должны окружить команду двумя апострофами. Команда ENTER все еще должна быть снаружи. Это работает для меня на UBUNTU 16.04: tmux send -t session_name 'echo durp'ENTER
TrollAxeThrower