当我运行echo "passphrase" | expect expect.exp "hostname"
时,一切正常,但expect
立即退出。
期望.exp
#!/usr/bin/expect
set passphrase [gets stdin]
set hostname [lindex $argv 0]
spawn ssh admin@$hostname
expect "passphrase"
send "$passphraser"
expect "admin@$hostname"
send "clearr"
interact
当stdin不是 tty 时,interact
不起作用。您可以将密码作为命令行选项传递,就像主机名一样。
您可能希望使用环境来传递密码:
# shell code
export passphrase="pass phrase"
expect expect.exp hostname
# expect code
...
send "$env(passphrase)r"