shell判断参数是否为数字

    1. #!/bin/bash  
    2.     
    3. ## 方法1,有点问题 
    4. #if [[ "$1" =~"^[[:digit:]]*$" ]];then 
    5. #if [[ "$1" =~"^[0-9]+$" ]];then 
    6. #    echo "$1 is number." 
    7. #else 
    8. #    echo 'no.' 
    9. #fi 
    10.     
    11. ## 方法2, 可以,不过不是bash实现的,是使用了grep的正则 
    12. #if grep '^[[:digit:]]*$' <<<"$1";then 
    13. #    echo "$1 is number." 
    14. #else 
    15. #    echo 'no.' 
    16. #fi 
    17.     
    18. ## 方法3 
    19. #if [ "$1" -gt0 ] 2>/dev/null ;then 
    20. #    echo "$1 is number." 
    21. #else 
    22. #    echo 'no.' 
    23. #fi 
    24.     
    25. ## 方法4,case 
    26. #case "$1" in 
    27. #    [1-9][0-9]*)  
    28. #        echo "$1 is number." 
    29. #        ;; 
    30. #    *)   
    31. #        ;; 
    32. #esac 
    33.     
    34. ## 方法5,awk(该方法判断不出前后端有空格的数字,如判断“ 123”为字符串“) 
    35. #echo $1| awk '{print($0~/^[-]?([0-9])+[.]?([0-9])+$/)?"number":"string"}' 
    36.     
    37. ## 方法5,awk 
    38. #if [ -n "$(echo $1| sed -n "/^[0-9]\+$/p")" ];then 
    39. #    echo "$1 is number." 
    40. #else 
    41. #    echo 'no.' 
    42. #fi 
    43.     
    44. ## 方法6,expr  (这种方法比较好用)
    45. expr $1 "+"10 &> /dev/null 
    46. if [ $? -eq 0 ];then 
    47.     echo "$1 is number" 
    48. else 
    49.     echo "$1 not number" 
    50. fi 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值