我有一系列需要在期望中运行的 SFTP 命令。
但是当我运行下面的脚本时,由于某些原因,没有得到任何输出。如果脚本中任何地方有错,请纠正我。
expect << EOF
spawn sftp -oPort=23 -oBatchMode=no -b cmds.txt [email protected]
sleep 3
expect "[email protected]'s password:"
send "hello123\r"
EOF
但是当我在 CLI 界面中运行以下命令时,它运行得非常好:
# spawn sftp -oPort=23 -oBatchMode=no -b cmds.txt [email protected]
出于安全原因,我不能使用 SCP、SSHPASS、KeyChain 等,
答案1
一旦你告诉 expect 发送密码,它就无事可做了,所以它会停止并终止 sftp。从生成的命令中添加等待文件结束:
expect eof
您可以通过使用 启动 Expect 来获得更多调试信息expect -d
。