Al intentar obtener el último parámetro posicional establecido /bin/dash, lo intenté echo ${$#}. Sorprendentemente, esto no resultó en un error, sino en PID, que es lo mismo que el $$contenido variable. Pregunta, ¿por qué funcionó esa sintaxis? ¿Cuál es la regla de sintaxis que Shell aplicó aquí?
Básicamente, lo que hice es
$ set 1 2 3 4 5
$ echo ${$#}
13819
$ echo $$
13819
Aparentemente, el %personaje también se ignora en tal construcción
$ echo ${$%}
13819
Pero *y el @resultado es un error de sustitución incorrecto:
$ echo ${$*}
sh: 10: Bad substitution
$ echo ${$@}
sh: 11: Bad substitution
#y %y qué resultados de comportamiento de aquellos.
eval, por ejemplo dash -c 'set 1 2 3 4 5; eval "echo \$$#"'. Fuente: Ubuntu Wiki
for i; do true; doneobtener el último elemento $i) pero estaba buscando algo más elegante. evalpor supuesto, puede tener problemas potenciales, en qué medida, ese es otro tema. Pero sí, es una opción
${$*}y${$@}produce?