tenho o seguinte
#!/bin/bash
function f1 ()
{
echo "${@:1:-2}"
}
f1 1 2 3 4 5 6
Preciso echo 1 2 3 4 5
man bash
me diz que quando uso @
não consigo usar um comprimento negativo.
Recorri a um cálculo ( "${@:1:$((${#@}-1))}"
) que me parece pouco ortodoxo.
Como excluo o último parâmetro da saída?
O argumento length já está em um contexto aritmético, então não há necessidade de
$(( ... ))
, e o número de argumentos é dado por$#
então não há necessidade de tentar usar o equivalente de${#...[@]}
on$@
.