[問題] 如何讓script一直loop到執行成功?

作者: LIAR (玻璃做的大叔)   2015-08-02 09:19:40
while [ "$?" == "0" ]
do
echo 輸入FTP要用的密碼兩次\(記得要按enter\),兩次要一樣
passwd $2|| echo 錯誤7,兩次密碼要一樣。如果重新輸入密碼還是錯誤,就按
ctrl+C跳出
done
大概像上面這樣,我想把新ID的FTP、網芳的密碼設定統合成一個script,
但是因為不希望一個輸入錯誤,就要別的使用者重頭跑一遍,所以想用loop
在改失敗的時候loop回去重新輸入。
不過我這樣失敗了,不管成不成功,都會一直回去改密碼,反過來用until,
則是甚麼動作都沒有執行。請問這部分應該怎麼寫?
作者: kerwinhui (kezza)   2015-08-02 16:45:00
echo的exit value是0,要先存下 passwd 的exit value
作者: LIAR (玻璃做的大叔)   2015-08-02 20:29:00
請問要如何存?因為有好幾個指令接著跑,不能存到上一個指令的recurn value
作者: kerwinhui (kezza)   2015-08-02 20:50:00
retval=1; if [ "$retval" -gt 0 ]; then echo "..."passwd $2; retval=$?; [ "$retval" = 0 ] || echo ...fi再把 if ... then ... fi 改成 while ... do ... done
作者: prismwu   2015-08-02 20:59:00
passwd這行改成: passwd $2 || echo ... && break;
作者: LIAR (玻璃做的大叔)   2015-08-02 22:01:00
感謝你,成功,不過最後一行break是否沒必要?不然會跳掉。

Links booklink

Contact Us: admin [ a t ] ucptt.com