使用 EXPECT 的问题是一个 BASH shell 脚本

使用 EXPECT 的问题是一个 BASH shell 脚本

这是代码(bash 脚本):

echo "Pass for router:"
read -s pass


/usr/bin/expect <<EOD
spawn ssh 192.168.10.1 -l root 'opkg list-installed' > list-installed.txt
#echo @pass
expect "*password:*"
send "$pass\r"
interact
EOD

问题是它什么都没返回。它没有创建本地文件“list-installed.txt”

这有什么问题?

答案1

单引号在 expect 中没有特殊含义。请使用双引号。

此外,使用expect eof而不是interact,因为一旦您输入密码,就没有任何可以实际交互的东西——您只是在等待命令完成。

相关内容