Я пытаюсь запустить tmux, передавая несколько команд одновременно, и я не могу правильно заключить строку в кавычки.
Команда успешно выполняется при ручном вводе в командной строке:
~% /usr/local/bin/tmux start-server\; set-option -g default-command '/usr/bin/true 1 2 3' \; new-session
[exited]
Но в реальном случае мне нужно построить команду динамически, и тогда я не могу заставить ее правильно расширяться. Одиночные кавычки, похоже, отбрасываются при расширении ${=var}
:
~% cmd="/usr/local/bin/tmux start-server; set-option -g default-command '/usr/bin/true 1 2 3' ; new-session"
~% ${=cmd}
usage: set-option [-agosquw] [-t target-session|target-window] option [value]
tmux не понимает команду, когда она передается как одна строка, т.е. не включает в строку токен /usr/local/bin/tmux
и расширяет остальное с помощью ${cmd}
вместо ${=cmd}
.
~% /usr/local/bin/tmux 'start-server; set-option -g default-command "/usr/bin/true 1 2 3"; new-session'
unknown command: start-server; set-option -g default-command "/usr/bin/true 1 2 3"; new-session
моя версия zsh:
⚠~% ${SHELL} --version
zsh 5.0.2 (x86_64-apple-darwin12.2.1)