M BUZZ CRAZE NEWS
// news

Testing user input arguments to a bash function

By Sarah Rodriguez

I am handling the parsing of bash function arguments in the following way. The function affirm-numeric -W "$arg" tests if arg is a whole number (0,1,2,...), returning a value greater than zero, when arg is confirmed to be a whole number.

There are two possibilities to test the user inputs. As I do here, for each option. Otherwise make the checks after parsing the values through the while loop.

I wonder which would be the better approach in terms of functionality. It seems to me that the way I am doing it gives me more flexibility upon the parsing procedure.

 while (( $# > 0 )); do case $1 in ("-T"|"--tail") # -T 21 nchk=$( affirm-numeric -W "$2" ) if (( nchk > 0 )); then tm="$2" ; shift ; shift else err+=(": -T failed numeric validation") fi ;; ("-T="*|"--tail="*) # -T=21 nchk=$( affirm-numeric -W "${1#*=}" ) if (( nchk > 0 )); then tm="${1#*=}" ; shift else err+=(": -T failed numeric validation") fi ;; ("-T"*) # -T21 nchk=$( affirm-numeric -W "${1#-T}" ) if (( nchk > 0 )); then tm="${1#*T}" ; shift else err+=(": -T failed numeric validation") fi ;; ("--") shift ; break ;; ("-"*) err=( "?" ) ; shift ;; (*) break ;; esac done
2 Reset to default

Know someone who can answer? Share a link to this question via email, Twitter, or Facebook.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy