Re: Command line parameter problem in scripts ?

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

 



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.


[Index of Archives]     [Current Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]     [Fedora Docs]

  Powered by Linux