我期待的剧本
#!/usr/bin/expect -f
#I tried replacing sh - with bash -s still no positive results
spawn ssh xxxx@yyyy "sh -" < test.sh
expect "password: "
send "zzzzz\r"
expect "$ "
如果在终端
中执行,该命令效果很好ssh xxxx@yyyy "sh -" < test.sh
但是如果我通过expect
脚本执行它;它失败了。
如果我通过expect脚本执行它,这是输出。我可以知道我哪里出错吗
bash: test.sh: No such file or directory
P.S:是的,文件存在且凭据正确。
答案 0 :(得分:0)
Expect脚本无法读取文件的内容,这就是问题所在。通过读取文件的内容并传递该变量而不是文件名
来解决它set fh [open test.sh r]
set contents [read $fh]
close $fh
并将sh-
替换为bash -c '$contents'
感谢大家的宝贵意见。