Este foro ya no está activo, así que no puedes publicar nuevas preguntas ni responder a las preguntas existentes.

¿Qué significan las variables especiales de Bash que empiezan por $?

2 de marzo de 2011

En Bash existen varias variables cuyo nombre empieza por $ y que tienen un significado especial. Si por ejemplo ejecuto lo siguiente:

./mi_programa &; echo $!

Por pantalla veo el PID del proceso mi_programa ejecutado en segundo plano. También conozco otras variables como $? que creo que hace referencia al TTY activo. ¿Existen otras variables? ¿Cuál es su significado?

Estás leyendo una traducción autorizada de la pregunta What are the special dollar sign shell variables? planteada por Z Douglas en StackOverflow.

Respuestas

#1

Esta es la lista completa de variables especiales:

  • $1, $2, $3, ... parámetros de posición que hacen referencia al primer, segundo, tercer, etc. parámetro pasado al script.
  • $_, el último argumento pasado al último comando ejecutado (justo después de arrancar la shell, este valor guarda la ruta absoluta del comando que inicio la shell).
  • $#, número total de argumentos pasados al script actual.
  • $*, la lista completa de argumentos pasados al script. Esta valor es una cadena de texto.
  • $@, la lista completa de argumentos pasados al script. Esta valor es una lista.
  • $-, la lista de opciones de la shell actual.
  • $$, el PID de la shell actual.
  • $IFS, el separador utilizado para delimitar los campos.
  • $?, el código de salida del pipe más reciente (es decir, de la última vez que se encadenaron varios comandos mediante el carácter pipe que se escribe como |).
  • $!, el PID del último comando ejecutado en segundo plano.
  • $0, el nombre de la shell o del script de shell.

Además de estas, también están disponibles las variables de entorno definidas por la shell.

@librosweb

7 octubre 2014, 8:28