这是代码(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
,因为一旦您输入密码,就没有任何可以实际交互的东西——您只是在等待命令完成。