作者LIAR (玻璃做的大叔)
看板Linux
標題[問題] 如何讓script一直loop到執行成功?
時間Sun Aug 2 09:19:40 2015
while [ "$?" == "0" ]
do
echo 輸入FTP要用的密碼兩次\(記得要按enter\),兩次要一樣
passwd $2|| echo 錯誤7,兩次密碼要一樣。如果重新輸入密碼還是錯誤,就按
ctrl+C跳出
done
大概像上面這樣,我想把新ID的FTP、網芳的密碼設定統合成一個script,
但是因為不希望一個輸入錯誤,就要別的使用者重頭跑一遍,所以想用loop
在改失敗的時候loop回去重新輸入。
不過我這樣失敗了,不管成不成功,都會一直回去改密碼,反過來用until,
則是甚麼動作都沒有執行。請問這部分應該怎麼寫?
--
起初,他們追殺共產主義者,我沒有說話,因為我不是共產主義者;
接著,他們追殺猶太人,我沒有說話,因為我不是猶太人;
後來,他們追殺工會成員,我沒有說話,因為我不是工會成員;
此後,他們追殺天主教徒,我沒有說話,因為我是新教教徒;
最後,他們奔我而來,卻再也沒有人站起來為我說話了。
《First They Came(他們首次來時)》,Martin Niemoller牧師(1892-1984)
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.176.35.57
※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1438478387.A.131.html
→ kerwinhui: echo的exit value是0,要先存下 passwd 的exit value 08/02 16:45
→ LIAR: 請問要如何存?因為有好幾個指令接著跑,不能存到上一個 08/02 20:29
→ LIAR: 指令的recurn value 08/02 20:29
→ kerwinhui: retval=1; if [ "$retval" -gt 0 ]; then echo "..." 08/02 20:50
→ kerwinhui: passwd $2; retval=$?; [ "$retval" = 0 ] || echo ... 08/02 20:51
→ kerwinhui: fi 08/02 20:52
→ kerwinhui: 再把 if ... then ... fi 改成 while ... do ... done 08/02 20:53
→ prismwu: passwd這行改成: passwd $2 || echo ... && break; 08/02 20:59
→ LIAR: 感謝你,成功,不過最後一行break是否沒必要?不然會跳掉。 08/02 22:01