fbpx Variables Especiales en el Shell Linux: $0, $?, $$, $# y $@ | Certificação Linux

Variables Especiales del Shell Linux: $0, $?, $$, $# y $@ con Ejemplos

📅 05/03/2019 ⏱ 4 min ✍️ Uira Ribeiro
Linuxcomandoscómo-hacer
Variables Especiales del Shell Linux: $0, $?, $$, $# y $@ con Ejemplos
Exam Pass App — mais de 7.000 questões LPI, offline, em 5 idiomas, disponível no Android e na App Store
Disponible en
Google Play
Disponible en
App Store

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.

VariablePara 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.
$0Retorna el nombre del programa ejecutado.
$nRetorna 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

Uira Ribeiro

Prof. Uirá Ribeiro

Chair do Board do Linux Professional Institute

Después de años viendo profesionales perder horas en tareas simples por no conocer las herramientas correctas de Linux, decidí enseñar.
Hoy soy autor de la mayoría de los Materiales de Aprendizaje oficiales de la LPI y mentor de más de 14,000 alumnos certificados.

Conoce mi historia completa →

Eso fue solo una pieza. El curso enseña el camino completo — desde tu primer comando hasta el día del examen.

Certificação Linux — a plataforma líder em certificações Linux no Brasil
WhatsApp