À partir du Guide de script Bash avancé, pour obtenir le dernier argument de ligne de commande:
Ou:
lastarg=${!#}Il s'agit d'une référence indirecte à la$#variable.
Notez quelastarg=${!$#}cela ne fonctionne pas.
!$plus simple et pareil?
À partir du Guide de script Bash avancé, pour obtenir le dernier argument de ligne de commande:
Ou:
lastarg=${!#}Il s'agit d'une référence indirecte à la$#variable.
Notez quelastarg=${!$#}cela ne fonctionne pas.
!$plus simple et pareil?
Réponses:
Comme il est dit, c'est une référence indirecte. Prenons l'exemple suivant:
$ var=test
$ test='Hello, world'
$ echo ${!var}
Hello, world
Maintenant, si je devais définir les paramètres de position suivants:
$ set -- one two three
Et $#représentera le nombre total de paramètres positionnels:
$ echo $#
3
Cela signifie que lorsque je l'appelle comme ${!#}je dis, donnez-moi la valeur du paramètre nommé 3:
$ echo ${!#}
three