Passing Arguments in Shell Scripts


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Passing Arguments in Shell Scripts
# 36  
Old 03-05-2009
Well for non-option arguments the user gets a message 'Ilegal option'
Code:
while getopts s:f:vVh:A opt
do
  case $opt in
    A) echo Autor:test; exit;;
    v) echo version 1.0; exit;;
    s) searchphrase=$OPTARG ;;
    -*) echo invalid option >&2; exit 1 ;;
   esac
done
shift $(( $OPTIND - 1 ))

# 37  
Old 03-05-2009
Quote:
Originally Posted by kev_1234
Well for non-option arguments the user gets a message 'Ilegal option'
Code:
while getopts s:f:vVh:A opt
do
  case $opt in
    A) echo Autor:test; exit;;
    v) echo version 1.0; exit;;
    s) searchphrase=$OPTARG ;;
    -*) echo invalid option >&2; exit 1 ;;
   esac
done
shift $(( $OPTIND - 1 ))


That's an illegal option, not a non-option argument. A non-option argument doesn't begin with a hyphen.

And it should be:

Code:
    *) echo invalid option >&2; exit 1 ;;

# 38  
Old 03-05-2009
Great Chris everything works now and thanks for correction.......Smilie

Just before I annoy you anymore......

what does
Code:
shift $(( $OPTIND -1 ))

do?

Thanks
# 39  
Old 03-05-2009
Chris I noticed something.....

My code stands like this

Code:
while getopts s:f:vVh:A opt
do
  case $opt in
    A) echo Autor:K.S.Rehsi; exit;;
    v) echo version 1.0; exit;;
    s) searchphrase=$OPTARG ;;
    *) echo Invalid option >&2; exit 1 ;;
   esac
done
shift $(( $OPTIND - 1 ))

if [ $# -gt 0 ]
then
  echo "If there are spaces in the search string, enclose it in double quotes"
  exit 1
fi
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"

Now, if input a searchphrase like ./test -s Hello magzine

it give me the error message as planned......

But as I correct the searchphrase like ./test -s "Hello magzine" there is no results in the file?????

Have I put the code in the right place??
# 40  
Old 03-05-2009

It works for me:

Code:
$ xx.sh -s "Hello magazine"
$ ls -l mylist1.html
-rw-rw-r--  1 chris chris 23901 Mar  5 14:53 mylist1.html

# 41  
Old 03-05-2009
Yeah the file is being created in mine alright but it seems to be empty in my case.
I have to input the searchphrase twice to get the output in the .html files....??

Also when I open mylist6.html and mylist7.html in text editor there were errors but again if I input the searchphrase again......it goes away.....

I guess its probably my scripting......or my ubuntu......
Code:
while getopts s:f:vVh:A opt
do
  case $opt in
    A) echo Autor:K.S.Rehsi; exit;;
    v) echo version 1.0; exit;;
    s) searchphrase=$OPTARG ;;
    *) echo Invalid option >&2; exit 1 ;;
   esac
done
shift $(( $OPTIND - 1 ))

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

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"
# put a newline at the start of a link
cat mylist1.html |sed -e 's#<a href#\n<a href#g' >mylist2.html
# put a newline at the end of link 
cat mylist2.html |sed -e 's#</a>#</a>\n#g' >mylist3.html
# now we need to extract all lines that begin with <a href="http:
cat mylist3.html |sed -n -e '/^<a href="http:/p' >mylist4.html
#now remove urls that contain google
cat mylist4.html |sed -n -e '/\.google/!p' >mylist5.html
#now remove urls that are numeric
cat mylist5.html |sed -n -e '/[0-9]*[0-9]*[0-9]*\.[0-9]*[0-9]*[0-9]*\.[0-9]*[0-9]*[0-9]*\.[0-9]*[0-9]*[0-9]*/!p' >mylist6.html
#Remove all HTML tags
cat mylist6.html |sed -e :a -e 's/<[^>]*>//g;'  >mylist7.html

# 42  
Old 03-05-2009
This is the type of error i get........
The error keeps moving from one file to another......meaning......the file that was getting this error doesn't get it anymore but the file after it gets it......

Quote:
Could not open the file /home/kev/Documents/test1/mylist8.html using the Unicode (UTF-8) character coding.
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