19 No Advanced Bash-Scripting Guide, para obter o último argumento da linha de comando: Ou: lastarg=${!#} esta é uma referência indireta à $#variável. Observe que lastarg=${!$#}não funciona. bash flerb fonte 4 Como um aparte, o ABS é bastante desaprovado como referência; veja wooledge.org/~greybot/meta/abs para a história de seu factóide no canal irc.freenode.org # bash. O Wiki do Bash-Hackers e o Wooledge BashGuide não são tão famosos pela densidade de imprecisões. Nesse último, as referências indiretas são abordadas em detalhes no BashFAQ # 6 ; no primeiro, wiki.bash-hackers.org/syntax/pe#indirection Charles Duffy 1 Apenas uma pergunta: não é !$mais simples e o mesmo? Unxnut # 23/18 Respostas: 27 Como se diz, é uma referência indireta. Veja o seguinte exemplo: $ var=test $ test='Hello, world' $ echo ${!var} Hello, world Agora, se eu definir os seguintes parâmetros posicionais: $ set -- one two three E $#representará o número total de parâmetros posicionais: $ echo $# 3 Isso significa que quando eu chamo como ${!#}estou dizendo, me dê o valor do parâmetro chamado 3: $ echo ${!#} three Jesse_b fonte
27 Como se diz, é uma referência indireta. Veja o seguinte exemplo: $ var=test $ test='Hello, world' $ echo ${!var} Hello, world Agora, se eu definir os seguintes parâmetros posicionais: $ set -- one two three E $#representará o número total de parâmetros posicionais: $ echo $# 3 Isso significa que quando eu chamo como ${!#}estou dizendo, me dê o valor do parâmetro chamado 3: $ echo ${!#} three Jesse_b fonte
!$
mais simples e o mesmo?Respostas:
Como se diz, é uma referência indireta. Veja o seguinte exemplo:
Agora, se eu definir os seguintes parâmetros posicionais:
E
$#
representará o número total de parâmetros posicionais:Isso significa que quando eu chamo como
${!#}
estou dizendo, me dê o valor do parâmetro chamado3
:fonte