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 ]