shell 脚本中的两个可能的 Sudo 密码
Two possible Sudo passwords in shell script
我有一个问题,Mac 计算机部署有两个可能的 root 管理员密码。我正在尝试创建一个 shell 脚本来卸载应用程序,并且需要输入两个密码。如果 "password 1" 正确,则脚本完成且没有任何错误。这就是我现在的位置。有什么建议么?
echo "password 1" | sudo "command"
if [ $? –ne 0 ]; then
## last command didn’t work, let’s try another password
echo "password 2" | sudo "command"
fi
输出
RT20787-MAC:desktop tsstech$ sh Uninstall_script.sh
Password:Sorry, try again.
Password:
sudo: 1 incorrect password attempt
Uninstall_script.sh: line 21: [: –ne: binary operator expected
Password:
只需将两个密码都提供给一个 sudo。我的 sudo 需要选项 -S
才能从标准输入读取密码。
echo -e "password 1\npassword 2" | sudo -S "command"
这假定您的 "command"
不需要从标准输入读取,但另请参阅下面的评论。
你的测试有问题:
if [ $? –ne 0 ] #–ne: binary operator expected
为 $ 添加引号? :
if [ "$?" -ne 0 ]
或使用 != 运算符:
if [ $? != 0 ]
我有一个问题,Mac 计算机部署有两个可能的 root 管理员密码。我正在尝试创建一个 shell 脚本来卸载应用程序,并且需要输入两个密码。如果 "password 1" 正确,则脚本完成且没有任何错误。这就是我现在的位置。有什么建议么?
echo "password 1" | sudo "command"
if [ $? –ne 0 ]; then
## last command didn’t work, let’s try another password
echo "password 2" | sudo "command"
fi
输出
RT20787-MAC:desktop tsstech$ sh Uninstall_script.sh
Password:Sorry, try again.
Password:
sudo: 1 incorrect password attempt
Uninstall_script.sh: line 21: [: –ne: binary operator expected
Password:
只需将两个密码都提供给一个 sudo。我的 sudo 需要选项 -S
才能从标准输入读取密码。
echo -e "password 1\npassword 2" | sudo -S "command"
这假定您的 "command"
不需要从标准输入读取,但另请参阅下面的评论。
你的测试有问题:
if [ $? –ne 0 ] #–ne: binary operator expected
为 $ 添加引号? :
if [ "$?" -ne 0 ]
或使用 != 运算符:
if [ $? != 0 ]