Normally, command line parameters come in as separate, positional values, and may be referenced as:
- $# - the number of command line arguments (positional parameters)
- $* - all positional parameters expressed as a single string
- $@ - all positional parameters, but with each as a quoted string (each positional parameter is intact and presented as a quoted string)
- $0 - (the base name of the script itself)
- $1 - The first positional parameter
- $2 - The second positional parameter, and $3, $4, etc. Starting with 10, they must be expressed as ${10}, ${11}, etc.
Here, we test for that case, and if found, we peel off the first parameter within that group of strings, and assign the remaining parameters in the group of springs:
# from the front, and make the rest of the data be the options passed to rsync.
if [ $# -eq 1 ]; then
{
Params=($1)
PARAM_1=${Params[0]}
unset Params[0]
ChildCommandOpts=${Params[*]}
} fi
No comments:
Post a Comment