Sponsored Content
Full Discussion: Getopt Help
Top Forums Shell Programming and Scripting Getopt Help Post 303015612 by mutley2202 on Sunday 8th of April 2018 02:50:38 PM
Old 04-08-2018
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 triggering is as per the below

Code:
./data_parser.pl -f testinputfile.txt

Code:
use strict;
use Getopt::Std;
use constant DEBUG => 0;

$| = 1;
my $current_colour = '36';

my %opt = ('f' => '-');

getopts("f:", \%opt);
my $opentag = $opt{'f'};
if ($opt{'f'} eq '-') {
        ;
} elsif (-f $opt{'f'}) {
        if ($opt{'f'} =~ /\.gz$/) {
                $opentag = 'gunzip -c '.$opt{'f'}.'|';
        }
} else {
        die "File ", $opt{'f'}, " not found\n";
}
open (FH, $opentag);

I dont understand what the getopts parts are doing, would someone be kind enough to shed some light and point me in the right direction with how i can add some switches on command execution.

Thanks in advance.
 

10 More Discussions You Might Find Interesting

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

2. Shell Programming and Scripting

getopt

#!/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 $@ (6 Replies)
Discussion started by: Hitori
6 Replies

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

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

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

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::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

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

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

10. 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
lib::abs(3pm)						User Contributed Perl Documentation					     lib::abs(3pm)

NAME
lib::abs - "lib" that makes relative path absolute to caller. SYNOPSIS
Simple use like "use lib ...": use lib::abs qw(./mylibs1 ../mylibs2); use lib::abs 'mylibs'; Extended syntax (glob) use lib::abs 'modules/*/lib'; There are also may be used helper function from lib::abs (see example/ex4): use lib::abs; # ... my $path = lib::abs::path('../path/relative/to/me'); # returns absolute path DESCRIPTION
The main reason of this library is transformate relative paths to absolute at the "BEGIN" stage, and push transformed to @INC. Relative path basis is not the current working directory, but the location of file, where the statement is (caller file). When using common "lib", relative paths stays relative to curernt working directory, # For ex: # script: /opt/scripts/my.pl use lib::abs '../lib'; # We run `/opt/scripts/my.pl` having cwd /home/mons # The @INC will contain '/opt/lib'; # We run `./my.pl` having cwd /opt # The @INC will contain '/opt/lib'; # We run `../my.pl` having cwd /opt/lib # The @INC will contain '/opt/lib'; Also this module is useful when writing tests, when you want to load strictly the module from ../lib, respecting the test file. # t/00-test.t use lib::abs '../lib'; Also this is useful, when you running under "mod_perl", use something like "Apache::StatINC", and your application may change working directory. So in case of chdir "StatINC" fails to reload module if the @INC contain relative paths. RATIONALE
Q: We already have "FindBin" and "lib", why we need this module? A: There are several reasons: 1) "FindBin" could find path incorrectly under "mod_perl" 2) "FindBin" works relatively to executed binary instead of relatively to caller 3) Perl is linguistic language, and `use lib::abs "..."' semantically more clear and looks more beautiful than `use FindBin; use lib "$FindBin::Bin/../lib";' 4) "FindBin" b<will> work incorrectly, if will be called not from executed binary (see <http://github.com/Mons/lib-abs-vs-findbin> comparison for details) BUGS
None known COPYRIGHT &; LICENSE Copyright 2007-2010 Mons Anderson. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. AUTHOR
Mons Anderson, "<mons@cpan.org>" CONTRIBUTORS
Oleg Kostyuk, "<cub@cpan.org>" perl v5.10.1 2010-11-16 lib::abs(3pm)
All times are GMT -4. The time now is 03:08 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy