【发布时间】:2015-03-26 01:04:47
【问题描述】:
尝试在 bash 脚本中启动 tmux 时遇到问题。
以下脚本是问题的示例。
tmux new-session -d -s main
tmux send-keys -t main 'ls ~/' C-m
tmux attach-session -d -t main
此脚本工作正常 - 它以 ~/ 目录列表开始 tmux。
然后我尝试将相同的命令(ls ~/)作为变量启动
tmux new-session -d -s main
foo="'ls ~/'"
tmux send-keys -t main "$foo" C-m
tmux attach-session -d -t main
但是,它没有用。我收到以下消息
'ls ~/'
$ 'ls ~/'
-bash: ls ~/: No such file or directory
这个问题的原因是什么以及如何解决?
【问题讨论】:
-
您不能在引号内加上引号并让外壳正确地删除它们。有关此问题的完整讨论,请参阅 mywiki.wooledge.org/BashFAQ/050。将一组引号放在那里。
foo="ls ~/"或foo='ls ~/但不能同时使用。
标签: bash scripting arguments tmux