Using perl to get options from command line


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Using perl to get options from command line
# 1  
Old 07-01-2010
Question Using perl to get options from command line

Hi all,
I want to get options from command line by perl.
Code:
usage()
 options:
                -h                    Show this help message and exit
                -t                     Name of tester [Required]
                --timeout           Set the timeout
                -l                      Log and Report output dir
                -r                      Alternative path to testcase scripts
                -s                      Specify the suits of testcases to run
                --testscripts           Specify the testscripts to run
                -p                      Specify the priority of the testcase to run
                -a                      remoteaddress
                -u                      remoteuser
                --remotepasswd          remotepassword
                -o                      Upgrade Framework config file or not

I wrote a perl as followsmy
Code:
    %options=(); 
    getopts("ot:l:r:s: p:a:u:",\%options);
    GetOptions("timeout=s"=> \$options{'timeout'},"testscripts=s@"=>\$options{'testscripts'},"remotepasswd=s"=>\$options{'remotepasswd'});

what's wrong with that?
when I run the script:
Code:
 ./aaa.pl -t Jack -l /logs/ -r /testscripts -s net -p 0 -a 10.22.11.22 -u damon -o

when I print all Options
it says
Code:
Option:
        tester: imeout=400
        timeout:
        logdir: /logs/
        sriptroot: emotepasswd=damon
        suits: net
        testscripts:
        priority: 0
        remoteaddress: 10.22.11.22
        remoteuser: damon
        remotepasswd:

what's wrong with that?
or can you give me a example using getopts and GetOptions?

Thanks
Damon

Last edited by pludi; 07-01-2010 at 08:43 AM.. Reason: code tags, please...
# 2  
Old 07-01-2010
I've never used getopts. I don't like the concept.
But here's a piece of something I use that might work for you.
Code:
while ($_ = shift @ARGV) {
    /^--/ && s/^--/-/;
    SWITCH: {
        /^-skip/ && do {
            $skipcount = /=/ ? do { s/.*=//, $_ } : shift @ARGV;
            if ($skipcount =~ /\D/) {
                warn "ERROR: The skipcount isn't a number: $skipcount\n";
                exit 1;
            }
            last SWITCH;
        };
        /^-max/ && do {
            $maxcount = /=/ ? do { s/.*=//, $_ } : shift @ARGV;
            if ($maxcount =~ /\D/) {
                warn "ERROR: The maxcount isn't a number: $maxcount\n";
                exit 1;
            }
            last SWITCH;
        };
        /^-n$/ && do { $just_print = 1;   last SWITCH; };
        /^-v$/ && do { $verbose = 1;      last SWITCH; };
        /^-./ && do {
            warn "WARNING: Ignoring unknown switch $_\n";
            sleep 100;
            last SWITCH;
        };
        if ($filename ne "-") {
            warn "ERROR: Too many files\n";
            exit 1;
        }
        $filename = $_;
    }
}

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Processing Multiple Arguments in Command Line Options

Hi All, I am new to scripting. Could you please assist me . Here is my requirement. I have written a script that has 2 option flags defined. -l) calls some function with the arguments passed in front of -l -r) calls second function with the arguments passed in front of -r *) calls the... (7 Replies)
Discussion started by: Jay Deshpande
7 Replies

2. Shell Programming and Scripting

Reading command line options from bash script

I have the following code and I am calling it using ./raytrac.bash -u and getting problems. For some reason opt_usage is still 0. opt_usage=0 iarg=0 narg=$# while (($iarg < $narg)) do (( iarg = $iarg + 1 )) arg=$argv usrInputFlag=`echo $arg | awk '/=/ {print 1}; ! /=/... (22 Replies)
Discussion started by: kristinu
22 Replies

3. UNIX for Dummies Questions & Answers

Running set options from the command line and bash command

I'm reading about debugging aids in bash and have come across the set command. It says in my little book that an addition to typing set you can also use them "on the command line when running a script..." and it lists this in a small table: set -o option Command Line... (5 Replies)
Discussion started by: Straitsfan
5 Replies

4. Shell Programming and Scripting

awk script file command line options

Being new to awk I have a really basic question. It just has to be in the archives but it didn't bite me when I went looking for it. I've written an awk script, placed it in a file, added the "#!/usr/bin/awk -f" at the top of the script and away I go. "% myAwk <inputfile>" gives me exactly what... (2 Replies)
Discussion started by: tomr2k
2 Replies

5. Shell Programming and Scripting

Issue with spaces in Java command line options

Hi, I am writing a shell script to build Java options dynamically in a variable array and pass them to java.exe. If an option value contains a space, I cannot find a way to get it interpreted correctly. Here is my example: #!/bin/bash JAVA_HOME=/opt/jvm/jre1.5.0_18 JAVA_OPTS=("-Xms256m... (4 Replies)
Discussion started by: Romain
4 Replies

6. Shell Programming and Scripting

Run perl script, with command-line options

Hello everyone, I have a perl script which takes various command line options from user like : test.pl -i <input_file> -o <output_file> -d <value> -c <value> Now I have multiple input files in a directory: <input_file_1> <input_file_2> <input_file_3> <input_file_4> ..... .... ...... (6 Replies)
Discussion started by: ad23
6 Replies

7. Shell Programming and Scripting

perl/unix: script in command line works but not in perl

so in unix this command works works and shows me a list of directories find . -name \*.xls -exec dirname {} \; | sort -u | > list.txt but when i try running a perl script to run this command my $query = 'find . -name \*.xls -exec dirname {} \; | sort -u | > list.txt';... (2 Replies)
Discussion started by: kpddong
2 Replies

8. Shell Programming and Scripting

how to? launch command with string of command line options

my description from another thread... here's my code: #!/bin/bash IFS=$'\n' function OutputName() { input=$1 echo $input input=`echo "$input" | sed -e 's/.//'` input=`echo "$input".avi` output_name=$input } if ]; then echo... (5 Replies)
Discussion started by: TinCanFury
5 Replies

9. Shell Programming and Scripting

Associated array from command line options

I am looking to populate an (associated) array with a command line argument. The command line would look something like this: alert -action test -priority '10' -module test_module . . . The associated array would look like this after the data is read in flag=(action=test priority=10... (1 Reply)
Discussion started by: jperret
1 Replies

10. Programming

Executing command line options

Can someone please tell me how to modify/add to this code so that it recognizes UNIX command options (all beginning with "-") and executes the command with options? #include<stdio.h> #include<stdlib.h> int main(int argc, char *argv) { int i; system("stty -echo"); ... (8 Replies)
Discussion started by: Safia
8 Replies
Login or Register to Ask a Question