1. ホーム
  2. バッシュ

[解決済み】bashでコマンドを成功するまで何度も実行する方法とは?

2022-03-31 15:08:35

質問

あるスクリプトで、ユーザーにいくつかの情報を尋ねたいのですが、ユーザーがその情報を入力するまでスクリプトを続けることができません。以下は、これを実現するために、ループにコマンドを入れてみたものですが、何らかの理由でうまくいきません。

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

whileループのバリエーションをいろいろと試してみました。

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

しかし、なかなかうまくいきません。

解決方法は?

until passwd
do
  echo "Try again"
done

または

while ! passwd
do
  echo "Try again"
done