getopts question


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting getopts question
# 1  
Old 06-26-2008
Question getopts question

could anyone please tell me what this will automatically set my variable all=True....

Code:
#!/bin/sh
all=FALSE

while getopts a: option
do
   case "option"
   in
     a) all=TRUE;;
    /?) echo "...... "
         exit 1;;
    esac
done

if [ "$all"=TRUE ]
then
    echo "true"
else
    echo "false"
fi

if i do $ foo -a ls .. it will echo true
if i do $ foo ls (without the -a) it will still echo true.... why????

thanks

if possible, please explain when I need to do something like:
while getopts a: option (do i need the colon ? )

and what is the difference between $# and $OPTIND ?
# 2  
Old 06-26-2008
put the : before a not a:

follow this example and you should be able to figur it out:

while getopts :xy:z var
do
case $var in
x) echo x found;;
y) echo y found with $OPTARG;;
z) echo z found;;
*) echo option error;;
esac
done
echo First non-dash arg is $OPTIND
# 3  
Old 06-26-2008
Changes:
1. case "$option" - you did not reference the value of option variable, what you did was compare the string 'option'
2. if [ "$all" = "TRUE" ] - you need to provide space between $all, equal sign, and string "TRUE", it is best practice to quote the compare string. What you are doing is that you are assign variable (value of a) to be TRUE and it is always true inside the if statement. See "man test" for details.
3. + other minor changes


Modified version:
Code:
#!/bin/sh
all=FALSE

while getopts a: option > /dev/null 2>&1
do
   case "$option"
   in
     a) all="TRUE";;
     *) echo "...... "
         exit 1;;
    esac
done

if [ "$all" = "TRUE" ]
then
    echo "true"
else
    echo "false"
fi

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. Shell Programming and Scripting

Using getopts

Hi. Can somebody please show me an example of how to use getopts to assign a variable if it's been passed into the script but to set a default if no value has been passed in? And also how to handle a param with multiple values ... so a sub parse (can I use a function for this?)? Here's my code... (1 Reply)
Discussion started by: user052009
1 Replies

3. Shell Programming and Scripting

Getopts help

Hi All, I am writing a script to pass the getopts argument to the function which I have. But it as soon as I execute the script, the argument is taking it as blank. I tried using multiple way to check but its not working. Can someone please let me know what wrong in this code. function1()... (4 Replies)
Discussion started by: sidh_arth85
4 Replies

4. Shell Programming and Scripting

? used in getopts

Suppose I have a code below . while getopts a: opt do case $opt in a) app_name="$OPTARG";; *) echo "$opt is an invalid option"; exit 1;; ?) echo "The value of $OPTARG is an invalid option"; exit 1;; esac done Could anyone please tell me in which case my... (1 Reply)
Discussion started by: maitree
1 Replies

5. Shell Programming and Scripting

Question about getopts

I am trying to use the finction getopts in script. From what I understand this can be an example for using: while getopt "p:rvt:" do case p) echo "$OPTARG" ;; r) echo... (5 Replies)
Discussion started by: programAngel
5 Replies

6. Shell Programming and Scripting

getopts question

I am trying to set up prompts when you don't enter the right information or dont enter the information at all, when executing a script. Below is the question that i am asking and i am not sure how to set up the if statements to make sure that the user enters the name, cpu's, memory and ip. I was... (3 Replies)
Discussion started by: rookieuxixsa
3 Replies

7. Shell Programming and Scripting

getopts help

Hi i have part of the scripts below ,getopt for -h or ? not working for me. can anybody tell me if this sytax right or wrong. #!/usr/bin/ksh program=$(basename $0) ##################################################################################### function usageerr { RC=1 ... (3 Replies)
Discussion started by: GrepMe
3 Replies

8. Shell Programming and Scripting

getopts question!!!

is there a better way to check if all args are set??? while getopts h:p:u: opt do case "$opt" in h) host="$OPTARG";; p) port="$OPTARG";; u) user="$OPTARG";; \?) echo >&2 \ "usage: $0 -h host -p port -u user" exit 1;; esac done ... (1 Reply)
Discussion started by: andy2000
1 Replies

9. Shell Programming and Scripting

question about getopts

hello there I am back with more questions (sorry it is been quite a while since I had done scripting). I had tried the search function to search for the threads that might have an answer to my question, but I could not find it, so I had decided to post it. I had created the scripts below in ksh... (2 Replies)
Discussion started by: ahtat99
2 Replies

10. Shell Programming and Scripting

help in getopts

hey need help with getopts again. i am using getopts to read my command line options and arguments. i can manage to do for options that have only one argument e.g srcipt_name -f 3 i am able to use getopts to do this but i am having problems two accept more than two agruments e.g.... (1 Reply)
Discussion started by: problems
1 Replies
Login or Register to Ask a Question