Advertisement
zamotivator

Untitled

Jun 14th, 2013
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.21 KB | None | 0 0
  1. oleg@t510 1 ~/work/svn/p4 % cat test.sh
  2. #!/bin/bash
  3.  
  4. # return 0 if argument is positive number                                                                                                                                
  5. function is_positive_number ()
  6. {
  7.     case $1 in
  8.         ''|*[!0-9]*) return 1 ;;
  9.         *)           return 0 ;;
  10.     esac
  11. }
  12.  
  13. # return 0 if argument is number and 1 otherwise                                                                                                                          
  14. function is_number ()
  15. {
  16.     local string=$1
  17.     is_positive_number $string
  18.     if [ $? -eq 0 ]; then
  19.     return 0
  20.     elif [ "${string:0:1}" == '-' ]; then
  21.     is_positive_number "${string:1:${#string}-1}"
  22.     return $?
  23.     else
  24.         return 1
  25.     fi  
  26. }
  27.  
  28. for value in 0 1 123 -1 -123 -0 -123-123 bad '' --123; do
  29.     is_number $value
  30.     echo "is_number '$value' is $(is_number ${value} && echo 'yes' || echo 'no')"
  31. done
  32. oleg@t510 1 ~/work/svn/p4 % ./test.sh  
  33. is_number '0' is yes
  34. is_number '1' is yes
  35. is_number '123' is yes
  36. is_number '-1' is yes
  37. is_number '-123' is yes
  38. is_number '-0' is yes
  39. is_number '-123-123' is no
  40. is_number 'bad' is no
  41. is_number '' is no
  42. is_number '--123' is no
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement