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.