su
パスワードが間違っている場合(このように)、もう一度尋ねる方法はありますかsudo
?
最初に私はこう考えた。
while ! su -c foo; do
read -n 1 -p "Retry(y/n)?" ch
if [[ "$ch" != "y" ]]; then
break
fi
done
ただし、foo
場合によっては1を返す可能性があるため、間違ったパスワードを入力したかfoo
失敗したかを検出することはできません。
ベストアンサー1
回避策として、以下を提案します。
#!/bin/bash
while ! su -c "foo; exit 0"; do
read -n 1 -p "Retry? (y/n) " ch
[[ "$ch" != "y" ]] && break # This does the same in fewer lines
done
foo
他の終了コードがあってもゼロ値を返します。
警告する:foo
この回避策(少し見苦しい)では、終了コードを確認できません。プロジェクトに必要かどうかはわかりません。