Passing Arguments in Shell Scripts


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Passing Arguments in Shell Scripts
# 29  
Old 03-01-2009
Code:
case $1 in
     -s) searchstring=$2 ;;
esac

if [ -s "$searchstring" ]
then
  echo  "file $searchstring exists"
else
  echo  "file $searchstring does not exist"
fi

Sorry if I have confused yourself.......

My understanding about the below was that this:
Code:
case $1 in
     -s) searchstring=$2 ;;
esac

It was setting the default variable, which I presume was wrong

Code:
if [ -s "$searchstring" ]
then
  echo  "file $searchstring exists"
else
  echo  "file $searchstring does not exist"
fi

Now, regarding the above I understand what the if-else statements are trying to do........

Quote:
What list of arguments? You just said you ran the script without arguments.
No, I use argument but only for the likes of -v(version), -s(searching)...etc but will try to implement the rest of it......

But, yes i dont use any argument when I run the actual SCRIPT!

Apologies, if I have confused you in the entire post.........as I am trying to learn.....Smilie...Please take me as a beginner!


# 30  
Old 03-01-2009
Quote:
Originally Posted by kev_1234
[INDENT]
Code:
case $1 in
     -s) searchstring=$2 ;;
esac

if [ -s "$searchstring" ]
then
  echo  "file $searchstring exists"
else
  echo  "file $searchstring does not exist"
fi

Sorry if I have confused yourself.......

My understanding about the below was that this:
Code:
case $1 in
     -s) searchstring=$2 ;;
esac

It was setting the default variable, which I presume was wrong

If it were in a script without other option parsing, that is what it would do. However, in your script, all the options are parsed in the while loop at the beginning.
Quote:
No, I use argument but only for the likes of -v(version), -s(searching)...etc but will try to implement the rest of it......

But, yes i dont use any argument when I run the actual SCRIPT!

The only place you can use options in when you run the script. Where else do you think you can use them?
# 31  
Old 03-02-2009
Now this exactly what I am trying to do:

User types in a searchphrase ./test -s "Classical Music".....the script then passes the string to google using wget and stores the received file. After this it runs through the sed program several times to remove any unwanted materials from the file and to prepare it in correct format.....and eventually output the contents of the file into the screen in either plaintext or htmltable.

Hope this helpsSmilie
# 32  
Old 03-02-2009

To make things simpler, forget about long options, and stick to single letters. This just deals with -s; add others whenever you like.
Code:
while getopts s:f:vVh opt
do
  case $opt in
    s) searchphrase=$OPTARG ;;
    ## add other options here
  esac
done
shift $(( $OPTIND - 1 ))

wget  -t1  -E -e robots=off -awGet.log -T 200 -H -Priserless -O mylist1.html \
   -U "Mozilla" "http://www.google.co.uk/search?q=${searchphrase}&btnG=Search"

# 33  
Old 03-02-2009
Thanks a Million Chris for all the help..........

Think I will be investing in your reference 'BOOK' since your way of shell scripting is very understandable............Smilie

All the best

Peace
Kev_1234
# 34  
Old 03-05-2009
Quote:
Originally Posted by cfajohnson

To make things simpler, forget about long options, and stick to single letters. This just deals with -s; add others whenever you like.
Code:
while getopts s:f:vVh opt
do
  case $opt in
    s) searchphrase=$OPTARG ;;
    ## add other options here
  esac
done
shift $(( $OPTIND - 1 ))

wget  -t1  -E -e robots=off -awGet.log -T 200 -H -Priserless -O mylist1.html \
   -U "Mozilla" "http://www.google.co.uk/search?q=${searchphrase}&btnG=Search"

I know the above problem code helped me solve my problem but I forgot to mention about the feature which I wanted to implement aswell.......

which was the search phrase should be contained in double quotes if it contains spaces or have each space preceded by a backslash.

So basically echo the user with a error when he searches that has space between it and that he should search with quotes where necessary.....

It will be great help Chris if you could help me out with this one last time....

Cheers
kev
# 35  
Old 03-05-2009
Quote:
Originally Posted by kev_1234
I know the above problem code helped me solve my problem but I forgot to mention about the feature which I wanted to implement aswell.......

which was the search phrase should be contained in double quotes if it contains spaces or have each space preceded by a backslash.

So basically echo the user with a error when he searches that has space between it and that he should search with quotes where necessary.....

Will the script ever be called with any non-option arguments?

If not, just check whether there are any arguments left after parsing:

Code:
if [ $# -gt 0 ]
then
  echo "If there are spaces in the search string, enclose it in double quotes"
  exit 1
fi

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