Passing Arguments in Shell Scripts


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Passing Arguments in Shell Scripts
# 8  
Old 02-28-2009
Quote:
Originally Posted by kev_1234
Quote:
Originally Posted by cfajohnson
No, you only need the one case statement; it reads all the parameters on the command line. Whatever was passed as the argument to -s will be in the variable $searchphrase.
Sorry sir, could you explain this part please!!!Smilie

The case statement reads the options on the command line and sets variables based on what it finds.
Quote:
Because say if the user runs "test -s" in the command line will the output go to standard output?

If you entered test -s, you should get an error message (the code I posted isn't that sophiticated, however), because, according to what you posted before, it should have a searchphrase argument.

Last edited by vgersh99; 02-28-2009 at 07:25 PM.. Reason: fix BB Code
# 9  
Old 02-28-2009
Quote:
Originally Posted by cfajohnson
Code:
args=
while [ $# -ge 1 ]
do
  case $1 in
    -h | --help) echo help; exit ;;
    -v | --version) echo Version 0.01; exit ;;
    -V | --Verbose ) versbose=1 ;;
    -o ) filename=$2; shift ;;
    -o*) filename=${1#-o} ;;
    --output=) filename=${1#*=} ;;
    -s) searchphrase=$2; shift ;;
    -s*) ${1#-s} ;;
    --search=) searchphrase=${1#*=} ;;
    -f) format=$2; shift ;;
    -f*) format=${1#-f} ;;
    --format=) format${1#*=} ;;
    -*) echo invalid option >&2; exit 1 ;;
    *) args="$args
$1"
       ;;
  esac
  shift
done
oldIFS=$IFS
IFS='
'
set -f
set -- $args
IFS=$oldIFS
set +f

Sorry again to bother you....

I noticed you changed your code would it be possible to explain it please as the previous one looked less complicatedSmilie

Also see if type in ./test -o mylist4.html it doesn't give any output?

Thanks

Last edited by kev_1234; 02-28-2009 at 08:20 PM.. Reason: Question was framed incorrectly!
# 10  
Old 02-28-2009
Quote:
Originally Posted by kev_1234
I noticed you changed your code would it be possible to explain it please as the previous one looked less complicatedSmilie

There's very little difference.

The revision allows non-option arguments to be included anywhere on the command line. When a non-option argument is encountered, it is added to the args variable. After the options have been parsed, those arguments are placed back into the positional parameters.
Quote:
Thanks, also you mentioned about the searchphrase argument

You gave a searchphrase argument in your initial post.
Quote:
....could I pass it in a loop structure?

What do you have in mind?
# 11  
Old 02-28-2009
Quote:
Originally Posted by cfajohnson
You gave a searchphrase argument in your initial post.

What do you have in mind?
Ignore the above as I have been so confused with arguments and etc that I forgot what I was writting.....Smilie

Actual question was when I pass a argument say "./test -s mylist4.html" or "./test -o mylist4.html"
there is no output???
# 12  
Old 02-28-2009
Quote:
Originally Posted by kev_1234
Actual question was when I pass a argument say "./test -s mylist4.html" or "./test -o mylist4.html"
there is no output???

That depends on what's in the script. It can do anything you want it to.
# 13  
Old 02-28-2009
Quote:
That depends on what's in the script. It can do anything you want it to.
The file mylist4.html is present inside my script....should it not return a value that is If I passed the searchphrase ./test --search mylist4.html!!

Thanks
# 14  
Old 02-28-2009
Quote:
Originally Posted by kev_1234
The file mylist4.html is present inside my script....should it not return a value?

Do you have a command in the script that prints a value? If you do, it will. If you don't, it won't.
Quote:
If I passed the searchphrase ./test --search mylist4.html!!

That depends on what your script does with it.

Putting something on the command line does nothing but make that argument available to the script. It's up to the script to do something (or nothing) with it.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Passing Arguments to shell script from file is not working as expected.

Hi All, I have below simple shell script in cloudera quick start vm cenos 6 which copy file from source to destination. # file_copy.sh source_dir = ${source_dir} target = ${target_dir} cp source_dir target and my parameter file is like below #parameter_file.txt source_dir =... (4 Replies)
Discussion started by: Narasimhasss
4 Replies

2. Shell Programming and Scripting

C shell script passing arguments problem.

I found something insteresting when I tested passing arguments into my scripts. My scripts is as below. % cat passarg.env #!/bin/csh echo "passarg: argv = $argv argv = $argv" passarg1.env $* % cat passarg1.env #!/bin/csh echo "passarg1: argv = $argv argvp=$argv" set str = "test... (5 Replies)
Discussion started by: bestard
5 Replies

3. Shell Programming and Scripting

Shell scripting with passing arguments

Hi All, I am using the script for creating local queue and passing the arguments while running the script as below n=0 while do e=`expr $n + 3` echo 'DEFINE QL('$e') MAXDEPTH('$6') MAXMSGL('$7') DEFPSIST('$8') '$9'' | /apps/mqm_opt/bin/runmqsc $2 n=`expr $n + 1` done Running the... (5 Replies)
Discussion started by: Anusha M
5 Replies

4. Shell Programming and Scripting

Passing multiple arguments to a shell script

Hi Gurus, Need some help with the shell scripting here. #!/bin/ksh ps -ef | grep -i sample.ksh | grep -v grep > abc.txt if then echo "sample.ksh is executing" else echo "sample.ksh is not executing" fi (1 Reply)
Discussion started by: jayadanabalan
1 Replies

5. Shell Programming and Scripting

Problems passing shell arguments to perl

Semi-newbie, so flame throwers to 'singe-only', please. ;-) I have a large number of (say) .html files, where I'd like to do a recursive in-place search and replace a particular string. The following bit of perl works fine: perl -pi -e 's/oldstring/newstring/g' `find ./ -name *.html` ... (2 Replies)
Discussion started by: johnny_canucl
2 Replies

6. Programming

Passing arguments from java to script shell

Hello Please i want to pass parameter (the string s) to the shell script: Quote: String s="Hello"; Process process = Runtime.getRuntime().exec("sh script1.sh"); How can i do please? Thank you (0 Replies)
Discussion started by: chercheur857
0 Replies

7. Shell Programming and Scripting

Passing arguments from a bash shell script to a command

I'm pretty new to bash scripting and I've found myself writing things like this (and the same with even more nesting): if $CATEGORIES; then if $LABEL_SLOTS; then $pyth "$wd/texify_grammar.py" "$input" "$texfile" "--label-slots" "--categories" "$CATEGORY_LIST" ... (9 Replies)
Discussion started by: burbly
9 Replies

8. Shell Programming and Scripting

passing runtime arguments to a shell script...

hi I am new to shell programming.....my question is while running one of my shell program it stops in between to accept input from the user and proceeds furthur after giving input....I want to know whether I can set this input through some files so that the shell acript reads the input from the... (10 Replies)
Discussion started by: santy
10 Replies

9. UNIX for Dummies Questions & Answers

passing arguments from shell to java

Hi: I have a script called runjava: The content --- search=$1 dpi=$2 prefix=$3 input=$4 output=$5 java -Djava.library.path=./lib/path/Lib -classpath .:lib/path/Lib/mylib.jar myclass $search $dpi $prefix $input $output How does myclass parse arguments --- String searchTerm =... (3 Replies)
Discussion started by: kenpeter
3 Replies

10. Shell Programming and Scripting

Passing and using arguments in Scripts.

I am new to scripting in AIX / UNIX. I have a script that runs 4 other scripts and I want to be able to pass in a agrument that I can check before I run the next script to see if the previous script finished with no errors. Can someone send me an example of this as I'm sure it's pretty easy to... (1 Reply)
Discussion started by: David.Vilmain
1 Replies
Login or Register to Ask a Question