尝试在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
此问题的原因是什么以及如何解决?
答案 0 :(得分:1)
您不能在引号内粘贴引号,并让shell正确删除它们。
有关此问题的完整讨论,请参阅mywiki.wooledge.org/BashFAQ/050。
在那里删除一组引号。
foo="ls ~/"
或foo='ls ~/'
,但不是两者。