这是我的代码:
#!/bin/sh
FILE=$1
while read line; do
$line
done < myfile.txt
此代码应该从文本文件中逐行读取,然后执行 tmux 发送键行
问题是键发送,但发送到 tmux 的输入之间没有空间。
所以如果我尝试发送
tmux send keys -t MySession 'Foo Bar'
输出在 tmux 会话中显示为 FooBar
您需要
使用 eval
来执行命令,因为在扩展变量时不会处理引号。所以它应该是:
eval "$line"
但是你的整个循环几乎等同于做
/bin/sh < myfile.txt
因为 shell 执行与脚本相同的操作:读取每一行并执行它。