On Mon, Apr 19, 2010 at 2:49 PM, subhojit ojha <subhojit.o...@gmail.com>wrote:
> Hi all, > I know what is getopts and what is the syntax, how to use it...But I > have never came across any shell program where I have been used getopts, is > here any one who has implemented getopts in their shell program..... > If any body have used, plz share ur experience...Just want to know in which > condition we are using getopts. > > Hi, I don't know how to explain the below usage in shell script. But I will explain the usage in C. I have created this very simple program to show you the usage of getopt(). Let us assume that the below program is your application(calculation.c). This program will call the function sum(), sub(), mul() and divi() depending upon the option (-S,-s,-m,-d). This is the one way parsing command line argument within your application. compile and execute the program. You will feel the usage . //This very basis example will show you the getopt usage //calculation.c #include <stdio.h> #include <stdlib.h> #include <unistd.h> int sum(int , int); int sub(int , int); int mul(int , int); int divi(int , int); void usage(); int main(int argc , char *argv[]) { int c; int input1; /* process arguments */ while (-1 != (c = getopt(argc, argv,"S:" "s:" "m:" "d:" "h"))) { switch (c) { case 'S': input1=atoi(optarg); printf("Sum : %d\n",sum(input1,2)); break; case 's': input1=atoi(optarg); printf("Sub : %d\n",sub(input1,2)); break; case 'm': input1=atoi(optarg); printf("Mul : %d\n",mul(input1,2)); break; case 'd': input1=atoi(optarg); printf("Div : %d\n",divi(input1,2)); break; case 'h': printf("usage goes here\n"); usage(); break; default: exit(0); } } return 0; } //addition int sum(int x , int y) { return (x+y); } //subtraction int sub(int x, int y) { return (x-y); } //Multiplication int mul(int x, int y) { return (x*y); } //devision int divi(int x, int y) { return (x/y); } void usage() { printf("./caculation -S <num1>\twill add: num1+2\n"); printf("./caculation -s <num2>\twill sub: num2-2\n"); printf("./caculation -m <num3>\twill mul: num3*2\n"); printf("./caculation -d <num4>\t will div: num4\2\n"); printf("./caculation -h \twill display this help message\n"); } Compile : $ gcc -Wall calculation.c -o claculation Execute the program with deffent option: $./claculation -S 10 $./claculation -S 10 -s 20 $./claculation -S 10 -s 20 -m 5 $./claculation -S 10 -s 20 -m 5 -d 30 If you have any questions, please don't hesitate to contact me. Now take the below link http://www.mkssoftware.com/docs/man1/getopt.1.asp I hope this may help you. Thanks & Rg Mohan L _______________________________________________ ILUGC Mailing List: http://www.ae.iitm.ac.in/mailman/listinfo/ilugc