在编写交互式脚本的时候经常需要检查输入,比如检查输入是否为整数。


思路一:正则表达式

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工具来做,方法很多,适合自己的就好。



.