2014-03-05 59 views
0

我是shell腳本的新手,也是編程的初學者。我想問一下這裏有一個場景。我在下面粘貼了腳本的一部分,它是案例切換的一部分。如果輸入無效,保持循環

echo -n "Delete Source File After Encryption : [Y|N] " 
read DSFE 

if [ $DSFE = "Y" -o $DSFE = "y" ]; then 
    Do something; 
    clear 

elif [ $DSFE = "N" -o $DSFE = "n" ]; then 
    Do something; 
    clear 

我喜歡找出如何可以將上面的片段,使得如果用戶輸入不是Y或N,它將循環並提示的問題。

對此mattter的任何評論?

謝謝。

問候, 凱文

+1

是你的一個發佈[這個問題](http://unix.stackexchange.com/questions/118187/is-there-a-goto-like-command -in-unix)一會兒回來? – devnull

+1

以上鍊接的問題非常適合您的情況! – devnull

+0

不,謝謝。請看看它。 – Kevin

回答

1
until [[ $DSFE == [YyNn] ]]; do 
     read -p "Delete Source File After Encryption? [Y|N] " DSFE 
done 

case $DSFE in 
     [Yy]) do_something ;; 
     [Nn]) do_something_else ;; 
     *) # this code should not be reached 
esac 
+0

謝謝阿德里安解決我的問題。它對我來說很有魅力。 – Kevin

+0

@Kevin很高興我可以幫助和歡迎SO!請閱讀[this](http://meta.stackoverflow.com/help/someone-answers)和[this](http://meta.stackexchange.com/a/5235)瞭解一下這裏的系統是如何工作的:-) –

相關問題