GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo usar variables en secuencias de comandos de Shell

En cada programación lenguaje variables juega un papel importante, en las secuencias de comandos de shell de Linux estamos usando dos tipos de variables:Variables definidas por el sistema &Variables definidas por el usuario .

Una variable en un script de shell es un medio para referenciar un numérico o valor de carácter . Y a diferencia de los lenguajes de programación formales, un script de shell no requiere que declares un tipo para sus variables

En este artículo discutiremos las variables, sus tipos y cómo establecer y usar variables en scripts de shell.

Variables definidas por el sistema:

Estas son las variables que crea y mantiene el Sistema operativo (Linux) mismo. Generalmente estas variables se definen en LETRAS MAYÚSCULAS . Podemos ver estas variables usando el comando “$ set “. Algunas de las variables definidas por el sistema se dan a continuación:

Para imprimir el valor de las variables anteriores, use comando de eco como se muestra a continuación:

# echo $HOME
# echo $NOMBRE DE USUARIO

Podemos acceder a estas variables de entorno desde dentro de sus secuencias de comandos utilizando el nombre de la variable de entorno precedido por un signo de dólar. Esto se demuestra en el siguiente script:

$ cat myscript

#!/bin/bash
# muestra la información del usuario del sistema.
echo “Información de usuario para ID de usuario:$USUARIO”
echo UID:$UID
echo HOME:$HOME

Observe que las variables de entorno en los comandos de eco se reemplazan por sus valores actuales cuando se ejecuta el script. Observe también que pudimos colocar el $USER variable del sistema dentro de las comillas dobles en la primera cadena, y el script de shell todavía pudo averiguar lo que queríamos decir. Hay un inconveniente a usar este método, sin embargo. Mira lo que sucede en este ejemplo:

$ echo “El costo del artículo es $15”
El costo del artículo es 5

Obviamente, eso no es lo que se pretendía. Cada vez que el script ve un signo de dólar entre comillas, asume que está haciendo referencia a una variable. En este ejemplo, la secuencia de comandos intentó mostrar la variable $1 (que no se definió), y luego el número 5. Para mostrar un signo de dólar real, debe preceder con un carácter de barra invertida:

$ echo “El costo del artículo es \$15”
El costo del artículo es $15

Eso es mejor. La barra invertida permitió que el script de shell interpretara el signo de dólar como un signo de dólar real, y no como una variable.

Variables definidas por el usuario:

Estas variables son definidas por usuarios . Un script de shell nos permite configurar y usar nuestras variables propias dentro del guión. Establecer variables le permite almacenar datos temporalmente y utilícelo en toda la secuencia de comandos, haciendo que la secuencia de comandos de shell se asemeje más a un programa informático real.

Variables de usuario puede ser cualquier cadena de texto de hasta 20 letras , dígitos , o un carácter de subrayado . Las variables de usuario distinguen entre mayúsculas y minúsculas, por lo que la variable Var1 es diferente de la variable var1. Esta pequeña regla a menudo mete en problemas a los programadores de scripts novatos.

Los valores se asignan a las variables de usuario usando un signo igual. No pueden aparecer espacios entre la variable, el signo igual y el valor (otro punto problemático para los novatos). Estos son algunos ejemplos de asignación de valores a variables de usuario:

var1=10
var2=-57
var3=probando
var4=“aún más pruebas”

El script de shell determina automáticamente el tipo de datos utilizado para el valor de la variable. Las variables definidas dentro del script de shell mantienen sus valores a lo largo de la vida del script de shell, pero se eliminan cuando se completa el script de shell.

Al igual que las variables del sistema, las variables de usuario se pueden referenciar mediante el signo de dólar:

$ cat test3
#!/bin/bash
# probando variables
días=10
guest=”Katie”
echo “$invitado se registró hace $días”
días=5
invitado=”Jessica”
echo “$invitado se registró hace $días”
$

Ejecutar el script produce el siguiente resultado:
$ chmod u+x test3
$ ./test3
Katie se registró hace 10 días
Jessica se registró hace 5 días
$

Cada vez que se hace referencia a la variable , produce el valor actualmente asignado a él. Es importante recordar que cuando se hace referencia a un valor de variable se usa el signo de dólar , pero al hacer referencia a la variable para asignarle un valor, no utiliza el signo de dólar. He aquí un ejemplo de lo que quiero decir:

$ cat test4
#!/bin/bash
# asignar un valor de variable a otra variable
valor1=10
valor2 =$valor1
echo El valor resultante es $valor2
$

Cuando usas el valor del valor1 variable en la declaración de asignación, aún debe usar el signo de dólar. Este código produce el siguiente resultado:

$ chmod u+x test4
$ ./test4
El valor resultante es 10
$

Si olvida el signo de dólar y hace que la línea de asignación de valor2 se vea como:

valor2=valor1
obtienes el siguiente resultado:
$ ./test4
El valor resultante es valor1
$

Sin el signo de dólar, el shell interpreta el nombre de la variable como una cadena de texto normal , que probablemente no sea lo que querías.

Uso del símbolo de acento grave (`) en variables de shell:

La comilla grave permite le permite asignar la salida de un comando de shell a una variable. Si bien esto no parece mucho, es un componente importante en secuencia de comandos  programación. Debe rodear todo el comando de la línea de comando con caracteres de acento grave:

prueba=`fecha`

El shell ejecuta el comando dentro de las comillas invertidas y asigna la salida a la variable testing. Aquí hay un ejemplo de cómo crear una variable usando la salida de un comando de shell normal:

$ cat test5
#!/bin/bash
# usando el carácter de acento grave
testing=`date`
echo “ La fecha y hora son:” $testing
$

La variable testing recibe el resultado del comando date y se usa en la instrucción echo para mostrarlo. Ejecutar el script de shell produce el siguiente resultado:

$ chmod u+x test5
$ ./test5
La fecha y la hora son:lunes 31 de enero a las 20:23:25 EDT de 2011

Nota :En bash también puedes usar la alternativa $(…) sintaxis en lugar de acento grave (`), que tiene la ventaja de ser reentrante.

Ejemplo:$ echo ” La fecha y hora de hoy es:” $(fecha)
La fecha y hora de hoy es:dom 27 de julio a las 16:26:56 IST 2014

Leer también9 ejemplos de comandos 'diff' en Linux


Linux
  1. Cómo usar una contraseña cifrada en Linux Bash Shell Script

  2. Cómo definir y usar funciones en Linux Shell Script

  3. ¿Cómo hacer que las variables de entorno "exportadas" en un script de Shell se mantengan?

  4. ¿Cómo manejar los interruptores en un script de Shell?

  5. ¿Debo usar Apt o Apt-get en secuencias de comandos de Shell?

Cómo usar el comando de fecha en Bash Scripting en Linux

Cómo escribir un script de Shell en Ubuntu

Cómo instalar y usar Nu Shell en Linux

¿Qué es Shebang en Linux Shell Scripting?

¿Cómo usar if-else en Shell Scripts?

¿Cómo ejecutar un comando en un script de Shell?