shell判断参数是否为数字

来源:互联网 发布:软件销售分成比例 编辑:程序博客网 时间:2024/04/29 07:32
    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 

 

 

 

原创粉丝点击