我目前正在使用expect传递密码,因此我的脚本可以自动运行,而不必坐下来并反复输入相同的密码。
重要提示:请不要评论这是多大的安全风险或者我应该如何使用ssh密钥,我会尽可能使用这些,但我必须使用的设置不允许。
我的代码如下所示:
#!/bin/sh
PASS=mypassword
/usr/bin/expect -c "
spawn python Tools/python/install.py
expect -nocase \"password:\" {send \"$PASS\r\"; interact}
"
我遇到的问题是install.py会提示输入相同的密码十几次,看来只会自动填写第一个提示的密码。
有没有办法修改行为,使其填写密码全部12次,而不仅仅是第一次?
答案 0 :(得分:7)
你必须做一点编程。幸运的是答案非常简单:
#!/bin/sh
PASS=MyPassword
export PASS
/usr/bin/expect -c '
spawn python Tools/python/install.py
expect {
-nocase "password:" {
send "$env(PASS)\r"
exp_continue
}
"somthing_else_that_indicates_you're_ready_to_interact"
}
interact
'
清理外壳也引用了一点。