使用 bash 脚本中的特定命令启动 tmux
Starting tmux with certain command inside of bash script
我 运行 试图在 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
出现此问题的原因是什么以及如何解决?
您不能将引号放在引号内并让 shell 为您正确删除它们。
有关此问题的完整讨论,请参阅 mywiki.wooledge。org/BashFAQ/050。
在那里放一组引号。
foo="ls ~/"
或 foo='ls ~/'
,但不能两者兼而有之。
我 运行 试图在 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
出现此问题的原因是什么以及如何解决?
您不能将引号放在引号内并让 shell 为您正确删除它们。
有关此问题的完整讨论,请参阅 mywiki.wooledge。org/BashFAQ/050。
在那里放一组引号。
foo="ls ~/"
或 foo='ls ~/'
,但不能两者兼而有之。