Macos 在Shell脚本终端中实现自动化
天哪!关于expect,我已经尝试了一切。我想做的是创建一个脚本,在终端中更改为root时自动输入密码。我的代码是这样的Macos 在Shell脚本终端中实现自动化,macos,terminal,expect,shell,Macos,Terminal,Expect,Shell,天哪!关于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 {
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"
'
最后我找到了答案如果您要将密码隐藏在expect脚本中,您可以1)将pmset更改为运行set user id,这样您就不必使用sudo,或者2)为自己提供对sudo的NOPASSWD访问权限,这样您就不必输入密码。任何一种方法都可以使您不必将密码存储在文件中。
发送“password\n”
不起作用。我现在在猜,所以我记下了我不准确的答案,你需要使用放置“$passwd\n”
,你在研究中看到了吗,看起来很有希望。。。。另外,为shell添加一个标记,bash?你会更多地关注你的问题。祝你好运