使用bash脚本中的某些命令启动tmux

时间:2015-01-27 12:03:47

标签: bash scripting arguments tmux

尝试在bash-script中启动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

此问题的原因是什么以及如何解决?

1 个答案:

答案 0 :(得分:1)

您不能在引号内粘贴引号,并让shell正确删除它们。

有关此问题的完整讨论,请参阅mywiki.wooledge.org/BashFAQ/050。

在那里删除一组引号。

foo="ls ~/"foo='ls ~/',但不是两者。