Shell Scripting – Sustitución de variables

Un shell es una interfaz que ayuda a los usuarios a conectarse con el sistema. Usar un shell es equivalente a comunicarse indirectamente con el sistema operativo. En los sistemas distribuidos Linux, cada vez que usamos una terminal, nos conectamos con un shell. El trabajo de un shell es analizar los comandos de Unix o las instrucciones dadas por el usuario. Este proceso involucra tomar comandos del usuario y convertirlos en una forma que el kernel pueda entender fácilmente. En palabras simples, actúa como un medio entre el usuario y el kernel del sistema operativo. El núcleo es la parte más crucial del sistema operativo de una computadora.

Para comprender la sustitución de variables, analicemos primero la sustitución en los scripts de shell. La sustitución es una funcionalidad mediante la cual podemos indicarle al shell que sustituya el valor real de una expresión.

Sustitución de secuencias de escape:

Hay algunas secuencias de caracteres que no representan su verdadera naturaleza pero tienen un significado especial para el sistema operativo y estas secuencias se conocen como secuencias de escape. Cuando se usan en un comando, se reemplazan por valores reales.

Secuencias de escape Significado
\norte añadir una nueva línea
\t pestaña horizontal
 \\ barra invertida
\b retroceso
\r retorno de carro

Ejemplo:

En este script, usamos dos comandos de eco para imprimir strings. Como puede ver, hemos usado una secuencia de escape para la nueva línea (\n) al final de la string. Dado que el trabajo real de este personaje es agregar una nueva línea, se agrega una nueva línea (claramente visible en la salida). Además, en la segunda declaración, hemos utilizado tres tabuladores horizontales al principio. Dado que el trabajo real de este personaje es agregar un espacio de tabulación horizontal, se agregan tres espacios horizontales antes de imprimir la string en la consola (claramente visible en la salida).

#!/bin/sh

#statement 1
echo -e "GeeksforGeeks\n"

# statement 2 
echo -e "\t\tis the best"

Producción:

Sustitución de variables:

Un shell nos permite manipular el valor de una variable en función de su estado de inicialización. Por estado de inicialización nos referimos a si una variable se inicializa antes de que su valor se use realmente para diferentes propósitos. 

No Señor. Expresión Significado
1 ${miVariable} sustituya el valor de myVariable .
2 ${miVariable:-valor} Si myVariable no está configurado (o es nulo), el valor se sustituye por myVariable .
3 ${miVariable:=valor} Si myVariable no está configurado (o es nulo), entonces se establece en valor.
4 ${miVariable:+valor} Si myVariable está configurado, el valor se sustituye por myVariable .
5 ${miVariable:? mensaje} Si myVariable no está configurado (o es nulo), el mensaje se imprime como un error estándar.

El funcionamiento de estas expresiones se ha discutido en detalle en el siguiente script:

Ejemplo:

#!/bin/sh


# If myVariable is unset or null then 
# assign 100 to it
echo ${myVariable:- 100}
echo "1. The value of myVariable is ${myVariable}"


# If myVariable is unset or null then 
# assign "GeeksforGeeks" to it
echo ${myVariable:="GeeksforGeeks"}
echo "2. Value of myVariable is ${myVariable}"

# unset myVariable
unset myVariable

# If myVariable is set then substitute
# the value
echo ${myVariable:+"GeeksforGeeks"}
echo "3. Value of myVariable is $myVariable"

myVariable="GeeksforGeeks"

# If myVariable is set then substitute the value
echo ${myVariable:+"Nainwal"}
echo "4. Value of myVariable is $myVariable"

# If myVaraible is not-set or null then print
# the message
echo ${myVariable:?"Message"}
echo "5. Value of myVariable is ${myVariable}"

# unset myVariable
unset myVariable

# If myVaraible is not-set or null then print
# the message
echo ${myVariable:?"Message"}
echo "6. Value of myVariable is ${myVariable}"

Producción:

Publicación traducida automáticamente

Artículo escrito por bhuwanesh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *