Obtém o último elemento da matriz $ @ / argv / arguments sem eval [duplicado]

0

Se eu fizer:

set a b c

Como faço para acessar o último elemento de $@ , ou seja, c ?

Eu inicialmente pensei em inscrever-se na matriz $@ :

"${@[$#-1]}"

Mas:

bash: ${@[$#-1]}: bad substitution

Eu finalmente encontrei:

eval echo "\$$#"

Existe uma maneira de obter o último elemento de $@ sem eval ?

É a única maneira de primeiro copiá-lo para outro array e acessar ${copy[-1]} ?

    
por Tom Hale 29.10.2018 / 10:28

1 resposta

1

ilkkachu sugeriu o muito legível:

echo "${@:$#}"
    
por 29.10.2018 / 10:55

Tags