测试基础 求助:shell 使用 except 后自动退出

tongyuruo · 2020年03月19日 · 最后由 strayeagle 回复于 2020年03月28日 · 1886 次阅读

求助:有个脚本需要 root 命令才能执行,故在执行前使用 except 输入密码,代码如下:

#!/usr/bin/expect
set timeout 3
#切换到root
spawn sudo su
expect "Password:"
exec sleep 1
send "123456"
expect "$"
expect eof
exit

但是远程登录到机器,执行这个脚本后,执行到输入密码后,会提示这个,然后不再执行后面的语句了,有人知道是什么原因吗?

[root@**** press]# ****

bash: 123456p: event not found
共收到 1 条回复 时间 点赞

试试:
set timeout 120
set password [lindex $argv 0]

expect {
"(yes/no)?" { send "yes\r"; exp_continue}
"password:" { send "$password\r" }
}

expect eof

建议 debug,吐出稍微详细一些的 stdout、stderr

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册