1. 程式人生 > >Linux shell 判斷輸入是否為全數字

Linux shell 判斷輸入是否為全數字

在編寫互動式指令碼的時候經常需要檢查輸入,比如檢查輸入是否為整數。

思路一:正則表示式

read -p "Please input an integer: " num
[[ "$num" =~ ^[1-9]+$ ]] && echo OK || echo Wrong
#注意正則表示式(^[1-9]+$)不能加引號!!!

思路二:利用case語句來判斷

read -p "Please input an integer: " num
case "$num" in
*[!0-9]*)
echo Wrong;;
*       )
echo OK;;
esac
#
#上面對於012這種非法輸入不能判斷,可以加以改進
case "$num" in
[1-9][0-9]*)
echo OK;;
*       )
echo Wrong;;
esac

以上只是利用shell自帶的正則表示式和結構來做判斷,也可以結合awk和sed工具來做,方法很多,適合自己的就好。