Visit Our UNIX and Linux User Community


getopt


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting getopt
# 1  
Old 07-07-2006
getopt

Code:
#!/bin/sh

set -- `getopt "abco:" "$@"`

a= b= c= o=
while :
do
    case "$1" in
    -a) a=1;;
    -b) b=1;;
    -c) c=1;;
    -o) shift; o="$1";;
    --) break;;
    esac
shift
done
shift # get rid of --
# rest of script...
# e.g.
ls -l $@

This code works well until there are filenames with spaces, even getopt -s sh doesn't help. How this problem could be resolved?
# 2  
Old 07-07-2006
space are evil. the easy way to to prevent them by quoting on the commandline.
# 3  
Old 07-07-2006
This wil not help as far as quoting will be removed by getopt
# 4  
Old 07-08-2006
hi all...


i have come across the posting ....
can any one please explain the code..

set -- `getopt "abco:" "$@"`

a= b= c= o=
while :
do
case "$1" in
-a) a=1;;
-b) b=1;;
-c) c=1;;
-o) shift; o="$1";;
--) break;;
esac
shift
done
shift # get rid of --
# rest of script...
# e.g.
ls -l $@

.....


what will set -- `getopt "abco:" "$@"` do and so on.
# 5  
Old 07-08-2006
Quote:
Originally Posted by arunkumar_mca
hi all...


i have come across the posting ....
can any one please explain the code..
$@ is all positional parameters, i.e. if you execute command attr0 attr1 then $@ is equal to attr0 attr1

The Bourne Shell set command sets positional parameters to the getopt's output, i.e. if getopt returns something like -a -b -- test then $@ will be equal to -a -b -- test

Note: '--' is used in set command to resolve problems with parameters that begins with '-' character

In while loop positional parameters are being processed till '--' ($1 refers to first positional parameter, shift deletes first positional parameter)
# 6  
Old 07-10-2006
Thanks a lot....
# 7  
Old 07-10-2006
With KSH you can use getopts :
Code:
#!/bin/ksh

while getopts abco: name
do
   case $name in
      a)  a=1;;
      b)  b=1;;
      c)  c=1;;
      o)  o="$OPTARG";;
   esac
done

shift $(($OPTIND -1))
# rest of script...
# e.g.
ls -l $@


jean-Pierre.

Previous Thread | Next Thread
Test Your Knowledge in Computers #996
Difficulty: Medium
Major Unix vendors, including Sun Microsystems, HP, IBM, and SGI, have been selling virtualized hardware since before 1990.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Getopt Help

Hi All, An old work friend wrote a script which I've been trying to understand how a section of it currently works and work out how i can add some command line switches which i can use later in the script to append the output depending on the command line arguements. Currently it works by... (1 Reply)
Discussion started by: mutley2202
1 Replies

2. Shell Programming and Scripting

getopt in CSH

I am struggling to understand how getopt can be used in a csh script. can anybody post a csh script using getopt. Please! (4 Replies)
Discussion started by: animesharma
4 Replies

3. UNIX for Dummies Questions & Answers

Using Getopt Option

Hi I need to use getopt option and I have no idea what it is or how to use it. I need to use it on this awk script: awk -F, -v cellid="$1" -v paramval="$2" -v oldfile="$3" -v newfile="$4" '$2==cellid{$3=newvalue}1' OFS="," $3 > $4 I tried reading up on it but I just confuse... (2 Replies)
Discussion started by: ladyAnne
2 Replies

4. Shell Programming and Scripting

Use of getopt with and without argument

Hi, I am in middle of using some getopt command and am finding some issue. The usage of my script can be like this: abc.sh <-d | -p |-r> -online < 0 | 1> The first argument can be either -d or -p or -r. The second argument can be either -s and a id or a file name. So I am stuck up in writing... (2 Replies)
Discussion started by: sachin.ag
2 Replies

5. Shell Programming and Scripting

Help with Getopt::Std

I am working on a script that lists files in a directory with a few file attributes depending on what option the user specifies at the command prompt. The script uses Getopt::Std and takes two switches. The first switch allows the user to specify a directory, the second switch gives a long... (3 Replies)
Discussion started by: Breakology
3 Replies

6. Shell Programming and Scripting

getopt in perl

Hi, I have a perl script with two functions say func a and func b. sub a { ----------- --------- } sub b { --------- --------- } I want to use this function on command line as we can do in shell script using getopt. My motto here is to run the script like this ... (7 Replies)
Discussion started by: namishtiwari
7 Replies

7. Shell Programming and Scripting

Help with getopt

Hi, I want to use the getopt function to parse some arguments for a script. while getopts "i:f:r:" OPTION do case $OPTION in i) iter=$OPTARG;; f) frame=$OPTARG;; r) roi=$OPTARG;; ?) echo Usage: ...... exit 2;; esac done However, I... (5 Replies)
Discussion started by: giorgos193
5 Replies

8. Shell Programming and Scripting

getopt help

:) Can anybody help me about how to use getopt in shell scripting. (3 Replies)
Discussion started by: darshakraut
3 Replies

9. Shell Programming and Scripting

getopt help

I m trying to use getopt This is my script, but it doesn't take argument in variable, Please help. set - - `getopt mscl: $*` if then echo "Exiting...." exit 2 fi for i in $* do case $i in -m) MAIL="$i"; shift;; -s) SCRIPT=$OPTARG; shift;; -c) COB=$OPTARG; shift;;... (2 Replies)
Discussion started by: darshakraut
2 Replies

10. Shell Programming and Scripting

getopt help

scriptname i have made a script to perform so tasks and i managed to complete the tasks for all the options the problem i am facing is that i can run the scripts individually but i would like to make it such that it can accept multiple options and give me the appropriate output e.g.... (1 Reply)
Discussion started by: problems
1 Replies

Featured Tech Videos