From the error string I would say the OS is AIX and you have specified the same character more than once.
getopts only supports single character options so while getopts blbcmn opt won't work you should probably consider using 1 char for each option eg l c and m would give while getopts lcm opt
Otherwise you will need to code the option processing yourself, but in your case this is pretty simple as you only have flag options and something like this should work out fine:
Last edited by Chubler_XL; 03-22-2011 at 07:37 PM..
This User Gave Thanks to Chubler_XL For This Post:
Dear forum
I have the following small script:
#!/bin/ksh
echo -e "abba-o" | awk -F '-' '{ print $2 }' | cut -b 1It needs to be ksh.. in bash I don't have this problem.
If I run this on opensuse 10.2 I get this as output: e
If I run this on suse enterprise 10 sp2 then I get this: o
... (1 Reply)
I have no idea what the following means. The teacher is too advanced for me to understand fully. We literally went from running a few commands over the last few months to starting shell scripting. I am not a programmer, I am more hardware oriented. I wish I knew what this question was asking... (3 Replies)
Does anybody know how to Accept a “userid” as a command line argument on a Unix Bourne Shell Script?
The output should be something like this:
User userid has a home directory of /path/directory
the default shell for this user is /path/shell (1 Reply)
Does anybody know how to Accept a “userid” as a command line argument on a Unix Bourne Shell Script?
The output should be something like this:
User userid has a home directory of /path/directory
the default shell for this user is /path/shell (1 Reply)
Does anybody know how to Accept a “userid” as a command line argument on a Unix Bourne Shell Script?
The output should be something like this:
User userid has a home directory of /path/directory
the default shell for this user is /path/shell (5 Replies)
Hello All,
i am known to the limitation of different shells while passing more than 9 command line arguments
i just tried the example below
i do see my current shell is tcsh
echo $SHELL
/bin/tcsh
so if i make my script executable and run it
output is
... (6 Replies)
hi,
I am new in the shell script, and c programming with linux. I am looking to pass the arguments in c program that should be executed by the shell script.
e.g.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv)
{ int i;
for (i=1;i<argc; i++)
{
... (2 Replies)
Hi guys,
I am having trouble with this script. What i want it to do is to iterate all command line arguments in reverse order. The code below does this fine but i need the output to print the words on separate lines instead of one line:
#!/bin/bash
#Takes in the arguments and displays them... (7 Replies)
]I have a string like "/abc/cmind/def/pq/IC.2.4.6_main.64b/lnx86" and this string is given by user. But in this string instead of 64b user may passed 32 b an i need to parse this string and check wether its is 32b or 64 b and according to it i want to set appropriate flags.
How will i do this... (11 Replies)
Hi
Am pretty new to C..
Am trying to pass the arguments from command line and use them in switch case statement..
i have tried the following
#include <stdlib.h>
main(int argc, char* argv)
{
int num=0;
if ( argc == 2 )
num = argv;
printf("%d is the num value",num);
switch ( num )
... (2 Replies)
Discussion started by: Priya Amaresh
2 Replies
LEARN ABOUT OPENSOLARIS
getopt
getopt(1) User Commands getopt(1)NAME
getopt - parse command options
SYNOPSIS
set -- ` getopt optstring $ * `
DESCRIPTION
The getopts command supersedes getopt. For more information, see NOTES below.
getopt is used to break up options in command lines for easy parsing by shell procedures and to check for legal options. optstring is a
string of recognized option letters; see getopt(3C). If a letter is followed by a colon (:), the option is expected to have an argument
which may or may not be separated from it by white space. The special option - is used to delimit the end of the options. If it is used
explicitly, getopt recognizes it; otherwise, getopt generates it; in either case, getopt places it at the end of the options. The posi-
tional parameters ($1 $2 ...) of the shell are reset so that each option is preceded by a - and is in its own positional parameter; each
option argument is also parsed into its own positional parameter.
EXAMPLES
Example 1 Processing the arguments for a command
The following code fragment shows how one might process the arguments for a command that can take the options -a or -b, as well as the
option -o, which requires an argument:
set -- `getopt abo: $*`
if [ $? != 0 ]
then
echo $USAGE
exit 2
fi
for i in $*
do
case $i in
-a | -b) FLAG=$i; shift;;
-o) OARG=$2; shift 2;;
--) shift; break;;
esac
done
This code accepts any of the following as equivalent:
cmd -aoarg filename1 filename2
cmd -a -o arg filename1 filename2
cmd -oarg -a filename1 filename2
cmd -a -oarg -- filename1 filename2
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
|Availability |SUNWcsu |
|CSI |enabled |
+-----------------------------+-----------------------------+
SEE ALSO Intro(1), getopts(1), getoptcvt(1), sh(1), shell_builtins(1), getopt(3C), attributes(5)DIAGNOSTICS
getopt prints an error message on the standard error when it encounters an option letter not included in optstring.
NOTES
getopt will not be supported in the next major release. For this release a conversion tool has been provided, namely, getoptcvt. For more
information, see getopts(1) and getoptcvt(1).
Reset optind to 1 when rescanning the options.
getopt does not support the part of Rule 8 of the command syntax standard (see Intro(1)) that permits groups of option-arguments following
an option to be separated by white space and quoted. For example,
cmd -a -b -o "xxx z yy" filename
is not handled correctly. To correct this deficiency, use the getopts command in place of getopt.
If an option that takes an option-argument is followed by a value that is the same as one of the options listed in optstring (referring to
the earlier EXAMPLES section, but using the following command line:
cmd -o -a filename
getopt always treats it as an option-argument to -o; it never recognizes -a as an option. For this case, the for loop in the example shifts
past the filename argument.
SunOS 5.11 7 Jan 2000 getopt(1)