[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: Command line parameter problem in scripts ?



Kim Lux wrote:
I am writing a script to process some files.

Lets say the name of the script is myscript.  I want to use it like
'myscript file1' sometimes and 'myscript *" other times, to process all
the files in the directory with one command.

So in myscript, I have this:

=======================================
echo
echo Argument 1 is $1.

for eachFile in `ls $1`
	do
	...
	done
=======================================

The problem is that when I call myscript with 'myscript *", argument 1
($1) is file1, not * as I expect it to be.  Thus the script processes
the first file and then stops. (file1 is the first file in the
directory.) How do I get $1 to be * rather than just a specific file ?

You can't. The shell that you are running is what is expanding the "*", not the script.

Try changing the script not to use $1 instead:

=======================================
echo
echo Arguments are "$@"

for eachFile in "$@"
do
	...
done
=======================================

Paul.


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]