Variables Especiales del Shell Linux: $0, $?, $$, $# y $@ con Ejemplos
Una característica importante de los scripts de shell es la posibilidad de confirmar la ejecución exitosa de un determinado comando.
Variables especiales de retorno
Ella es llamada de variable de retorno.
La variable de retorno se completa cada vez que un comando es ejecutado. Si el valor retornado es 0, el comando fue ejecutado con éxito.
Si el valor es diferente de 0, algún problema fue encontrado.
Si es utilizada en scripts, su valor necesita ser verificado inmediatamente después de la ejecución del comando deseado.
| Variable | Para qué sirve |
| $# | Retorna el número de argumentos que el programa recibió. |
| $_ | El guion bajo (underscore) contiene el nombre absoluto del archivo del shell o script que está siendo ejecutado como pasado en la lista de argumentos. |
| $? | Variable de retorno de la terminación de la ejecución de un programa. |
| $$ | Proporciona el PID del proceso del Shell. |
| $! | Proporciona el PID del último programa en ejecución en segundo plano. |
| $0 | Retorna el nombre del programa ejecutado. |
| $n | Retorna el argumento número n del programa. |
| $* $@ | Retorna todos los argumentos informados en la ejecución del programa. |
Vea el script de ejemplo en que se usa estas variables:
#!/bin/bashecho "Meu nome é: $0"echo "Eu tenho $# argumentos passados na minha execução"echo "Este é o resultado da última execução: $_"echo "O primeiro argumento é: $1"echo "O segundo argumento é: $2"echo "O terceiro argumento é: $3"echo "Meu PID é: $$"echo "Meus argumentos são: $@"echo "Meus argumentos são: $*"
Al ser ejecutado, producirá el siguiente resultado:
$ ./script um dois tresMeu nome é: ./scriptEu tenho 3 argumentos passados na minha execuçãoEste é o resultado da última execução: Eu tenho 3 argumentos passados na minha execuçãoO primeiro argumento é: umO segundo argumento é: doisO terceiro argumento é: tresMeu PID é: 6210Meus argumentos são: um dois tresMeus argumentos são: um dois tres
Variable $?
La variable $? representa el estado de salida del comando anterior.
Ejemplo:
$ echo "Uirá"
Uirá
$ echo $?
0
En este ejemplo la variable $? mostrará el código de retorno del comando anterior echo "Uirá".
Se ha convenido que cuando un comando es ejecutado sin errores, retornará el código de retorno 0 (cero). Cuando hay un error, un valor mayor que 1 será retornado, y dependiendo del valor, el desarrollador del comando podrá proporcionar una lista de códigos de error y sus significados.
Variable $!
La variable $! retornará el ID del proceso del último comando en segundo plano:
$ ls &[1] 27931
$ echo $!
27931
No confunda con la variable $$
Variable $$
La variable $$ muestra el ID del proceso del shell actual. Para scripts de shell, este es el ID del proceso en el cual ellos están siendo ejecutados:
$ echo $$16487
$ ps -ef|grep 16487
16487 8098 0 junho/21 pts/18 00:00:01 bash
Variable $#
La variable $# retorna el número de argumentos que el programa recibió. Puede ser usada en scripts cuando se desea saber si la cantidad de argumentos necesarios fue satisfecha.
Uso de { }
Las llaves pueden ser usadas para destacar para el shell una variable que es usada "dentro" de un texto. Vea el ejemplo:
$ x="tri"
$ y="${x}ângulo"
echo $y
triângulo
Diferencia entre $* y $@
- $* y $@ cuando son usados fuera de comillas dobles son idénticos y se expanden para los argumentos.
- "$*" entre comillas retorna todos los argumentos como si fuera un único resultado separado por espacio. Argumentos "Um dois" "tres" va a retornar "um dois tres", rompiendo los espacios entre los argumentos, como si fueran tres argumentos y no dos.
- "$@" va a retornar los argumentos exactamente como fueron recibidos. "Um dois" "tres" va a retornar como dos argumentos "Um dois" "tres", sin romper los espacios.
Conclusión
Si estás escribiendo un script de shell, es muy importante que conozcas las variables especiales.
Aprende mucho más sobre Linux en nuestro curso en línea. Puedes realizar la inscripción aquí. Si ya tienes una cuenta, o quieres crear una, simplemente ingresa o crea tu usuario aquí.
¿Te gustó? Comparte
Eso fue solo una pieza. El curso enseña el camino completo — desde tu primer comando hasta el día del examen.