Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- oleg@t510 1 ~/work/svn/p4 % cat test.sh
- #!/bin/bash
- # return 0 if argument is positive number
- function is_positive_number ()
- {
- case $1 in
- ''|*[!0-9]*) return 1 ;;
- *) return 0 ;;
- esac
- }
- # return 0 if argument is number and 1 otherwise
- function is_number ()
- {
- local string=$1
- is_positive_number $string
- if [ $? -eq 0 ]; then
- return 0
- elif [ "${string:0:1}" == '-' ]; then
- is_positive_number "${string:1:${#string}-1}"
- return $?
- else
- return 1
- fi
- }
- for value in 0 1 123 -1 -123 -0 -123-123 bad '' --123; do
- is_number $value
- echo "is_number '$value' is $(is_number ${value} && echo 'yes' || echo 'no')"
- done
- oleg@t510 1 ~/work/svn/p4 % ./test.sh
- is_number '0' is yes
- is_number '1' is yes
- is_number '123' is yes
- is_number '-1' is yes
- is_number '-123' is yes
- is_number '-0' is yes
- is_number '-123-123' is no
- is_number 'bad' is no
- is_number '' is no
- is_number '--123' is no
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement