a maneira de responder este programa é escrever um script de shell trivial (chamado "p"):
#! /bin/bash
echo "Arg 0: ".$0
echo "Arg 1: ".$1
echo "Arg 2: ".$2
echo "Arg 3: ".$3
Você pode então brincar com ele e ver o que ele produz, e você encontrará o seguinte:
(Lembre-se de executar v="a b c" antes de jogar com ele e passar p $ v (em vez de p 1 2 3 - que se comportará de maneira diferente)
argc = 2 em ambos os casos - o que faz sentido. As aspas na linha de comando significam agrupar todos os parâmetros em uma opção.
Se você precisa ter uma única variável com vários parâmetros, você sempre pode dividi-los no bash de forma simples, por exemplo, usando um script como
#! /bin/bash
i=0
for each in $@
do
a[i]=$each
i=$(( $i + 1 ))
done
echo ${a[0]}
echo ${a[1]}
echo ${a[2]}
echo ${a[3]}
Vai dividir as variáveis em elementos em uma matriz ($ a)