Thus said Andrew McNabb on Thu, 06 Dec 2007 15:57:03 CST:
> argument_list="arg1 arg2 arg3"
> some_program $argument_list
>
> Unfortunately, I could find no way to execute a program with a
> variable length list of arguments. The following works, but requires a
> fixed number of arguments:
How about something like:
set "arg1" "arg2" "arg3"
some_program "$@"
Here's a fun little script that demonstrates this by dynamically
altering the arguments (decreasing them as it goes):
------------------------------------------------------------------------
#!/bin/sh
if [ "$#" -gt 0 ]
then
echo "$# args are: $@"
shift
if [ "$#" -ne 0 ]
then
set "$@"
fi
"$0" "$@"
fi
------------------------------------------------------------------------
Call it as:
./shellscript "arg 1" "arg 2" "arg 3" "arg 4" "arg 5"
This will run 5 times (only 5 arguments) and output five lines.
Of course if your original script uses the positional parameters you
will want to save them off first.
Cheers,
Andy
--
[-----------[system uptime]--------------------------------------------]
9:38pm up 1:11, 1 user, load average: 1.00, 1.00, 1.00
/*
PLUG: http://plug.org, #utah on irc.freenode.net
Unsubscribe: http://plug.org/mailman/options/plug
Don't fear the penguin.
*/