Respostas:
Você pode usar o mesmo formato de qualquer outra matriz. Para extrair os 2º e 3º elementos de $@, você faria:
echo "${@:1:2}"
- -
| |----> slice length
|------> slice starting index
"${@:1:2}"na verdade , me fornece os argumentos da primeira e da segunda linha de comando . Enquanto isso, "${@:1}"fornece os argumentos completos da linha de comando e "${@:0}"o nome do script, seguido pelos argumentos completos da linha de comando .
$@ matriz são o primeiro e o segundo argumentos. "${@:1}"imprimirá toda a matriz começando com o 2º elemento (o 1º argumento) e ${@:0}toda a matriz começando com o 1º elemento, que é o nome do script. O que você estava esperando?
"$@". Suaargvatribuição seria interrompida se algum argumento contivesse espaços.