Getopts how to handle missing '-' in command line args.


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Getopts how to handle missing '-' in command line args.
Prev   Next
# 1  
Old 09-16-2013
Getopts how to handle missing '-' in command line args.

I'm using getopts to process command line args in a Bash script. The code looks like this:
Code:
while getopts ":cfmvhs:t:" option; do

    case $option in

        c)   operationMode="CHECK"
             ;;

        f)   operationMode="FAST"
             ;;

        m)   operationMode="MULTI"
             ;;

        v)   verbose="TRUE"
             ;;

        h)   Display_Usage_Message
             exit "$ExitStatusSuccess"
             ;;

        s)   numMulti=$OPTARG
             ;;

        t)   timeoutSeconds=$OPTARG
             ;;

        \?)  Output_Error_Message "OptionInvalid"
             exit "$ExitStatusErrorSwitchInvalid"
             ;;

        :)   Output_Error_Message "ArgMissing" "$OPTARG"
             exit "$ExitStatusErrorArgMissing"
             ;;

    esac
done

My question is how I should spot options which have no '-' prefix? When a user has omitted the '-' on the command line by a mistake. e.g. "progname -f v"

If there is an invalid option such as '-x', 'x' not being in my getopts ":cfmvhs:t:" string then getopts spots that and my Output_Error_Message "OptionInvalid" code is run. BUT if the user omits the '-' by a mistake and just enters 'x' on the command line or the user omits the '-' of one of the valid options then this is not handled. Using "*)" in addition to "\?)" in the case statement does not sort this out.

How should this situation be handled?

Thanks.
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Question about getopts optional argument [args...]

There are many places where I can see the syntax description for optargs, which, usually boils down to this: getopts OPTSTRING VARNAME where: OPTSTRING tells getopts which options to expect and where to expect arguments VARNAME tells getopts which shell-variable to use for option reporting... (2 Replies)
Discussion started by: sharkura
2 Replies

2. Emergency UNIX and Linux Support

Cut | command line args

Hi, Can you please hint me how to achieve the below? Input: $./script.sh start 1 2 Internally inside the script i want to set a single variable with $2 and $3 value? Output: CMD=$1 ARGS=$2 $3 --VInodh (10 Replies)
Discussion started by: vino_hymi
10 Replies

3. Shell Programming and Scripting

command line args in unix

Hi, i have a perl script named test.pl. It is executed as cat *.log|test.pl i need the complete command line args. I tried using basename $0 but im getting test.pl only but not cat *.log... Can anyone help me on this. Thanks in advance (3 Replies)
Discussion started by: niteesh_!7
3 Replies

4. Shell Programming and Scripting

How to send a function all command line args?

I have this code, I thought it would automatically know the args sent to script when called from shell. But it seems to not see any... main script: . args . errors . opt . clean dbfile="" opfile="" # calls function in script below chkarg #check commands (2 Replies)
Discussion started by: gcampton
2 Replies

5. Programming

how to handle SQL exceptions to call script having args via java ?

Hi, i want to call shell script via java + in that shell script i m doing some sql operation by connecting to sqlplus . i want to return 0 if successful exeution of SQL operations else 1 ; is it possible ? #!/bin/sh Name=$1; export ORACLE_HOME $ORACLE_HOME/bin/sqlplus... (3 Replies)
Discussion started by: crackthehit007
3 Replies

6. Shell Programming and Scripting

How to retrieve command line args one by on.

Hi, I have to store all the command line arguments into an array. I have the following code. ********************** #! /bin/sh set -A arr_no_updates i=1 while do arr_no_updates=$($i) echo ${arr_no_updates} i=$(($i+1)) done**************** (1 Reply)
Discussion started by: little_wonder
1 Replies

7. UNIX for Dummies Questions & Answers

command line args 2

I have this while loop and at the end I am trying to get it to tell me the last argument I entered. And with it like this all I get is the sentence with no value for $1. Now I tried moving done after the sentence and it printed the value of $1 after every number. I don't want that I just want... (2 Replies)
Discussion started by: skooly5
2 Replies

8. UNIX for Dummies Questions & Answers

command line args

I am trying to print command line arguments one per second. I have this while do echo "6" shift echo "5" shift echo "4" shift echo "3" shift echo "2" shift echo "1" shift done (2 Replies)
Discussion started by: skooly5
2 Replies

9. Programming

Command line args

My program usage takes the form for example; $ theApp 2 "one or more words" i.e. 3 command line arguments; application name, an integer, some text My code includes the following 4 lines: int anInteger; char words; sscanf(argv, "%d", &anInteger); sscanf(argv, "%s", &message); Based... (2 Replies)
Discussion started by: enuenu
2 Replies

10. UNIX for Dummies Questions & Answers

required command line args

Hello, How do I make a command line argument required using getopts? Thanks. (6 Replies)
Discussion started by: yoi2hot4ya
6 Replies
Login or Register to Ask a Question