如何在bash中运行命令直到成功

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (20)

我有一个脚本,想向用户询问一些信息,在用户填写这些信息之前,脚本不能继续。下面是我尝试将一个命令放入一个循环中以实现这一点,但由于某种原因它无法工作。

echo "Please change password"
while passwd
do
echo "Try again"
done

我尝试了许多变化的时间循环:

while `passwd`
while [[ "`passwd`" -gt 0 ]]
while [ `passwd` -ne 0 ]]
# ... And much more

但我似乎不能让它起作用。

提问于
用户回答回答于
用户回答回答于

相反,这是前一个命令的退出状态。passwd退出,如果一切正常,则为0,如果密码更改失败,则为非零.

passwd
while [ $? -ne 0 ]; do
    passwd
done

使用反勾选版本,将比较passwd的输出,这将类似于Enter passwordconfirm password还有类似的。

扫码关注云+社区