Я пытаюсь запустить серию команд в tmux из удаленного файла, например:
tmux $(wget -qO- http://example.com/tmux)
Файл содержит такие команды, как split-window
и send-keys
Проблема в, send-keys
снимает пробелы. Команды send-keys:
send-keys ssh example.com C-m;
Но вместо этого он отправляет sshexample.com
Есть идеи, почему?
Ура!
Предположительно, это интерпретация "send-keys ssh example.com C-m;
"как четыре отдельных аргумента и не зная, что поставить между ними.
Пытаться:
tmux "$(wget -qO- http://example.com/tmux)"
Дело не в том, что send-keys точно «удаляют пробелы», а в том, что Space - это один из специальных ключей, распознаваемых tmux и предполагаемых для использования с send-keys
команда.
Так что, а не
send-keys ssh example.com C-m;
в этом случае вы должны использовать
send-keys ssh Space example.com C-m;
Подробнее об этом можно узнать на Синтаксис ключей отправки tmux
Я немного боролся с подобной проблемой. Решение оказалось таким:
tmux send-keys -l $var;
tmux send-keys C-m;
благодаря -l
, tmux обратил внимание на все признаки. С другой стороны, он не принимал <enter>
поэтому требуется отдельный вызов.