天啊!我已经尝试过关于 expect 的一切。我想要做的是创建一个脚本,以便在更改为终端中的root时自动输入密码。我的代码看起来像这样
expect -i
spawn sudo pmset schedule sleep "{query}" expect { Password: send "password\r" }; interact;
exit
结果
expect1.1> spawn sudo pmset schedule sleep "06/19/11 23:40:00" expect { Password: echo "lovegun\r" }; interact; exit
spawn sudo pmset schedule sleep 06/19/11 23:40:00 expect Password: send "password\r"
Password:
我被困在密码中: 有人可以看看我的代码吗?这有什么问题。
expect -c '
proc abort {} {
puts "You have Authenticated\n"
exit 1
}
spawn sudo pmset schedule sleep "{query}"
expect {
Password: { send "password\n" }
default abort
}
puts "Finished OK\n"
'
最后我找到了答案
答案 0 :(得分:2)
如果您要将密码隐藏在expect脚本中,您可以1)更改pmset以运行set-user-id,这样您就不必使用sudo,或2)给自己NOPASSWD访问权限sudo所以你不需要输入密码。无论哪种方式都可以使您不必将密码存储在文件中。