getopts problem


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting getopts problem
# 1  
Old 03-09-2011
getopts problem

Hi everyone


I want to know how can we pass multiple argument in getopts

suppose


Code:
 
PARAMS="abcd"
 
while getopts ${PARMS} FLAG
 do
    case ${FLAG} in
(a) 
(b)
(c)
(d)
      esac

now if i want to define another parameter as st


then how would i define in PARAMS above.

please help
# 2  
Old 03-09-2011
From man bash:
Quote:
getopts optstring name [args]
getopts is used by shell procedures to parse positional parameters. optstring contains the option characters to be recognized; if a
character is followed by a colon, the option is expected to have an argument, which should be separated from it by white space.
One character per option. If you need something different, you will have to parse the parameters in a different way. On the other hand, there are plenty of characters left in the alphabet, so why not just take s?
# 3  
Old 03-09-2011
hii

thanks for reply

actually my requirement is that only that i need to pass

st as argument on command line prompt

so can u please tell me how to do it Smilie
# 4  
Old 03-10-2011
Just leave getopts out and use case and test $1. Check any basic shell scripting guide on the www for positional parameters.
# 5  
Old 03-12-2011
Hi

thanks for reply

but this means we cannnot acheive this via getopts actually if i change it from getopts functionality to case functionality it would not be feasible in my program

i have to achieve it through getopts functionality

can't we have multiple character argument in getopts
# 6  
Old 03-12-2011
Quote:
Originally Posted by aishsimplesweet
if i change it from getopts functionality to case functionality it would not be feasible in my program
Why not?
Quote:
i have to achieve it through getopts functionality
Why?
# 7  
Old 03-12-2011
because my code is having all parameters processed through getopts so i think according to requirement i should processed the new parameter with getopts only to not to change the functionality.

i tried implementing through case but it is giving me error i explain u how

initally my code is

PARAMS="abcd"

Code:
while getopts ${PARMS} FLAG
do
    case ${FLAG} in
(a) 
(b)
(c)
(d)
      esac

and suppose i invoke this code as

Code:
./abc.sh -a -b -c -d

but now suppose after this four parameter i introduced a new parameter -st then the code would be

PARAMS="abcd"

Code:
 
while getopts ${PARMS} FLAG
do
    case ${FLAG} in
(a) 
(b)
(c)
(d)
      esac
if [[ $5 == "-st" ]]
then
echo "any"
fi

if i invoke this code now as

Code:
./abc.sh -a -b -c -d -st

then it gives me error

Code:
ERROR is getopts bad option -s

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Identify problem with while getopts

can anyone spot a problem with the below: $ $ cat getopts.sh #!/bin/sh usage() { echo "myscript.sh local /tmp data.txt 600s -query" 1>&2; exit 1; } while... (4 Replies)
Discussion started by: SkySmart
4 Replies

2. Shell Programming and Scripting

problem with getopts

Hi, I have written a script to take command line arguments using geopts.This is the code. #!/bin/sh # The usage of this script. usage="Usage is $0" usage="$usage " usage="$usage " usage="$usage " # Use the getopt utility to set up the command line flags. set -- `/usr/bin/getopt... (4 Replies)
Discussion started by: arijitsaha
4 Replies

3. Shell Programming and Scripting

getopts - optional and problem to display help

In the below code while getopts :rfw:d:s:a: options do case "$options" in r) echo reverse;; f) echo forward;; w) window=$OPTARG;; d) duration=$OPTARG;; s) search=$OPTARG;; a) value=$OPTARG;; *) help; exit;; esac done ... (2 Replies)
Discussion started by: Amutha
2 Replies

4. Shell Programming and Scripting

getopts problem

How do I get the getopts command to display whats written at my help option if no option is types in? For example, myscript.sh -h will bring up my help option, however, I also want myscript.sh to do the same! #!/bin/bash while getopts :abh opt do case "$opt" in... (2 Replies)
Discussion started by: linuxkid
2 Replies

5. UNIX for Advanced & Expert Users

getopts problem

i was going through the man page of getopts this particular section is not clear to me can anyone please clarify in a little detail so that i can understand the concept MANPAGE:: Since getopts affects the current shell execution environ- ment, it is generally provided as a... (7 Replies)
Discussion started by: mobydick
7 Replies

6. Shell Programming and Scripting

problem with getopts

Hi, I am a new member to unix.com. Actually I am facing a problem with getopts. In my script i have used getopts to parse the parameters. when i use the script as shown below its working fine: find_status -p all ### where find_status is a script name. But even if I pass more than one... (3 Replies)
Discussion started by: pvamsikr
3 Replies

7. Shell Programming and Scripting

Problem in getopts

while getopts l:f:s:o:h: c do case $c in l) tail -${OPTARG} /etc/passwd exit 2;; f) head -${OPTARG} /etc/passwd exit 3;; s) grep ${OPTARG} /etc/passwd | cut -d: -f7 exit 4;; o) OARG=$OPTARG exit 5;; h) ... (3 Replies)
Discussion started by: nadman123
3 Replies

8. 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

9. Shell Programming and Scripting

Problem with getopts

I need to parse parameters but the arguments could be NULL,example: > cat getopts.sh while getopts "a:b:" opt 2>/dev/null do case "${opt}" in a) echo "A:${OPTARG}" ;; b) echo "B:${OPTARG}" ;; *) exit 1 ;; esac done > getopts.sh -a TEST1 -b TEST2... (5 Replies)
Discussion started by: Klashxx
5 Replies

10. Shell Programming and Scripting

getopts

I have a script that facillitates NDM (Connect::\Direct) transfer to remote hosts. This script uses getopts to parse through the parameters passed to it and to set appropriate variables based upon what was passed in. Kickoff="mv $PATH/$FILE1 $PATH/$FILE2" ndm_shell.ksh -p $Node -s $Source -d... (3 Replies)
Discussion started by: google
3 Replies
Login or Register to Ask a Question