[问题] 如何让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