Você pode reformular seu script para usar "$@"
; ou você pode verificar $#
e executar seus comandos de acordo.
Manual de referência do Bash declara:
$@
Expands to the positional parameters, starting from one. When the expansion occurs within double quotes, each parameter expands to a separate word. That is,"$@"
is equivalent to"$1" "$2" …
. […] When there are no positional parameters,"$@"
and$@
expand to nothing (i.e., they are removed).
awk options "$@"
Se você precisar usar alguns parâmetros de linha de comando que não são nomes de arquivos, dê uma olhada em shift
builtin.
$#
Expands to the number of positional parameters in decimal.
Use-o com algumas condicionais se precisar invocar comandos diferentes, dependendo desse número.