need help to pass arguments in script


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting need help to pass arguments in script
# 1  
Old 05-29-2009
need help to pass arguments in script

Hi,

I have a my script here--

Code:
print "The Perl Script does the User health check and system health check...\n";
print "---------------------------------------------------------------------\n";
# use strict;
my($OS);
$OS = $^O;
# need to test @ARGV before GetOptions shifts it
if (@ARGV == 0) {
   print "\nNo options provided, using defaults (use -h to view options)\n";
}

#GetOptions( 'h|help' => \$_help
        #   ,'u|userdata' => \$_userdata
        #   ,'s|systemdata' => \$_systemdata
		 #  ,'a|authresponsecode' => \$_authresponsecode
		 #  ,'o|outpur_dir' => \$_output_dir);
	  
#if( $_help ) {
  # printUsage(); # automatically exits the program
#}
use Getopt::Std;


##############################################################################
# Print the usage info and automatically exit
##############################################################################
sub printUsage() {
   print "\n\nUsage:";
   print "\n  perl MSLogStat.pl [options] [logfile1] [logfile2] ... [logfile(n)]";
   print "\n\nOptions:";
   print "\n  -h            * display usage help";
   print "\n  -o            * redirect the output to a directory";
   print "\n  -u            * display user related data";
   print "\n  -a            * display auth response codes";
   print "\n  -s            * output only system related data";
   print "\n";
   exit;
}
##############################################################################
# Print the authresponsecode
##############################################################################
sub authResponseCode () {
	print "AAFW_AUTH_SUCCESS				= 0";
	print "AAFW_AUTH_MORESTEPS				= 1";
	print "AAFW_AUTH_ID_NOT_FOUND			= 2";
	print "AAFW_AUTH_INVALID_CREDENTIAL	    = 3";
	print "AAFW_AUTH_ACCOUNT_EXPIRED		= 4";
	print "AAFW_AUTH_ACCOUNT_INACTIVE		= 5";
	print "AAFW_AUTH_ATTEMPTS_EXHAUSTED	    = 6";
	print "AAFW_AUTH_TOKEN_EXPIRED			= 7";
	print "AAFW_AUTH_CHALLENGE_EXPIRED		= 8";
	print "AAFW_AUTH_INVALID_REQUEST		= 9";
	print "AAFW_AUTH_CRED_REISSUED			= 10";
	print "AAFW_AUTH_INTERNAL_ERROR		    = 11";
	print "AAFW_AUTH_UNSUPPORTED_MECH		= 12";
    print "AAFW_AUTH_LAST					= 13";
}
# redirect output to a directory:
if( $_output_dir ) {	
   # does this directory already exist?
   if (! -e $_output_dir) {
      if( $OS =~ "Win32" ) {
      	`mkdir $_output_dir`;
      }
      else
      {
      	`mkdir -p $_output_dir`;      	
      }
   }
   if (! -e $_output_dir) {
      die "Failed to create output directory $_output_dir\n";
   }
}

if( $_authresponsecode ) {
	print "Printing the Auth Response Codes";
	authresponsecode();
}

sub userData() {
   #$LOG = $_logfile_name;
   $username=$2;
   open($LOG,"logfile.txt") or die "\nUnable to open log file:\n";
   @stock = <$LOG>; 
   @matches = (grep(/$username/, @stock));
   print @matches;
}
my $opt = "hu:sao";
my %options;
getopts( $opt , \%options );
printUsage() if  defined  $options{h} ;
authResponseCode() if defined  $options{a} ;
userData() if defined  $options{u} ;

in function userData() i want to make changes so that my script take username as command line arguement and logfile name also to be entered from command line,it can be multiple log files.
Please advice me how can i do that. Please do suggest me if you find something to be changed here to work it more efficiently.

Thanks
NT
# 2  
Old 06-02-2009
command line arguments are stored in the @ARGV array, and thus:
$ARGV[0] is the first, $ARGV[2] is the second. Your code could be:
Code:
 $username=$ARGV[0]; shift;
 for $logfile (@ARGV) {
   open(LOG,$logfile) or die "\nUnable to open $logfile: $!\n";
   @stock = <LOG>; 
   @matches = (grep(/$username/o, @stock));
   print @matches;
 }

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Cat a script, pipe it, then pass arguments to it?

suppose i have a perl script that is normally run this way: ./checkdisk.pl -H hostname -w 40 -c 80 but, for whatever reason, i cannot run the script directly as it should. But i can cat it through pipe. How can i pass the arguments "-H hostname -w 40 -c 80"? so this is what i'm doing,... (6 Replies)
Discussion started by: SkySmart
6 Replies

2. Shell Programming and Scripting

Need to pass arguments while running a Shell Script

Shell Script Gurus, I am writing a shell script which needs User ID's to pass as an Arguments in command line while executing. Can this be doable? I've never done this, If you give a sample script that would be helpful, Thanks. (1 Reply)
Discussion started by: shekar777
1 Replies

3. Shell Programming and Scripting

Pass Arguments to Command from Shell Script

Hi all, I am working on a project, in which I have to connect to Bluetooth low energy device. I am able to connect and do data transfer from command line. But I want to do from script Here is my script #!/bin/bash #sudo hcitool -i hci0 lescan sleep 1 sudo hcitool -i hci0 lecc --random... (8 Replies)
Discussion started by: nithin@embdes
8 Replies

4. Shell Programming and Scripting

How to pass arguments to an interactive script?

I've tried to find a solution to this, but I"m stumped. OS - RH Linux 5.9 I have a bash script <myProgram.sh> that gets executed manually and creates a small response file. I'm trying to automate the running of this script. When myProgram.sh runs, it prompts the user to enter 2 pieces of... (13 Replies)
Discussion started by: progkcp
13 Replies

5. Shell Programming and Scripting

Pass arguments to bash script

myscript.sh #!/bin/bash ARGA=$1 if ; then echo "${ARGA}:Confirmed" else echo "${ARGA}:Unconfirmed" fi when I run the above script from the command line, i run it as: ./myscript.sh jsmith now some times, i need to runn it this way: (8 Replies)
Discussion started by: SkySmart
8 Replies

6. Shell Programming and Scripting

How to pass arguments to an sftp script??

hi, Is it possible to pass arguments to a sftp script and use those arguments in the program? for example sftp_script FILENAME=$1 #!/usr/bin/expect spawn /usr/bin/sftp abc@ftp.abc.com expect "abc@ftp.abc.com's password:" send "pass\r" expect "sftp>" send "mput $FILENAME\r"... (9 Replies)
Discussion started by: Little
9 Replies

7. Shell Programming and Scripting

To pass arguments to makefile using script

Hi, I want to run a target of makfile using script by passing different arguments to it again n again. I i need to grep certain things from the log file. eg make abc KAB=8 BAC=8 >& KAB_BAC.log grep "timeA" KAB_BAC.log grep "timeB" KAB_BAC.log (i want to store the difference of the two time... (0 Replies)
Discussion started by: vdhingra123
0 Replies

8. UNIX for Advanced & Expert Users

How to pass arguments to an interactive script

Hey guys, I have an interactive script that is quite critical to our production environmentl thus updating it to run non-interactively is not an option. The script takes a varying number of arguments, which it ques untill user confirm end of data entry e.g of user input : 1 2 y ... (3 Replies)
Discussion started by: geek.ksa
3 Replies

9. Shell Programming and Scripting

Need help to pass arguments to shell script

Hi, I have a shell script called ftp.sh which is running continously in background. I tried passing arguments to this script but it did not worked out. Below is ftp.sh script. Please help me case $param in start) sleep_func "300" echo "!ksh $scr_ddir/ftp.sh... (1 Reply)
Discussion started by: bhargav20
1 Replies

10. Shell Programming and Scripting

How to pass arguments to a function in a shell script?

Hi, I have two shell variables $t1 and $t2 which I need to pass to a function in a shell script. The function will do some computation with those two variables and echo the resultant. But I do not know how to pass teh arguments. The function written is f1() {...... ........ } What should... (3 Replies)
Discussion started by: preetikate
3 Replies
Login or Register to Ask a Question