zhouandtao 发表于 2018-8-18 07:07:24

Linux shell 判断输入是否为全数字

  在编写交互式脚本的时候经常需要检查输入,比如检查输入是否为整数。
  思路一:正则表达式
read -p "Please input an integer: " num  
[[ "$num" =~ ^+$ ]] && echo OK || echo Wrong
  
#注意正则表达式(^+$)不能加引号!!!
  思路二:利用case语句来判断
read -p "Please input an integer: " num  
case "$num" in
  
*[!0-9]*)
  
echo Wrong;;
  
*       )
  
echo OK;;
  
esac
  
#
  
#上面对于012这种非法输入不能判断,可以加以改进
  
case "$num" in
  
*)
  
echo OK;;
  
*       )
  
echo Wrong;;
  
esac
  以上只是利用shell自带的正则表达式和结构来做判断,也可以结合awk和sed工具来做,方法很多,适合自己的就好。
  .


页: [1]
查看完整版本: Linux shell 判断输入是否为全数字