Current Path : /compat/linux/usr/share/doc/bash-3.2/functions/ |
FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64 |
Current File : //compat/linux/usr/share/doc/bash-3.2/functions/isnum.bash |
#From: jrmartin@rainey.blueneptune.com (James R. Martin) #Newsgroups: comp.unix.shell #Subject: Re: testing user input on numeric or character value #Date: 26 Nov 1997 01:28:43 GMT # isnum returns True if its argument is a valid number, # and False (retval=1) if it is any other string. # The first pattern requires a digit before the decimal # point, and the second after the decimal point. # BASH NOTE: make sure you have executed `shopt -s extglob' before # trying to use this function, or it will not work isnum() # string { case $1 in ?([-+])+([0-9])?(.)*([0-9])?([Ee]?([-+])+([0-9])) ) return 0;; ?([-+])*([0-9])?(.)+([0-9])?([Ee]?([-+])+([0-9])) ) return 0;; *) return 1;; esac } isnum2() # string { case $1 in ?([-+])+([[:digit:]])?(.)*([[:digit:]])?([Ee]?([-+])+([[:digit:]])) ) return 0;; ?([-+])*([[:digit:]])?(.)+([[:digit:]])?([Ee]?([-+])+([[:digit:]])) ) return 0;; *) return 1;; esac } isint() # string { case $1 in ?([-+])+([0-9]) ) return 0;; *) return 1;; esac } isint2() # string { case $1 in ?([-+])+([[:digit:]]) ) return 0;; *) return 1;; esac }