Shell Scripting – Sustitución

Hay ciertas expresiones que transmiten significados especiales. En otras palabras, no son lo que parecen. Un caparazón lleva a cabo la sustitución cada vez que encuentra tales expresiones. Por lo tanto, la sustitución se define como un mecanismo llevado a cabo por un caparazón en el que sustituye el valor de una expresión por su valor real.

Secuencias de escape:

Una secuencia de escape es un grupo de caracteres que no representa su valor real cuando se usa como un literal de string. Algunas de las secuencias de escape se enumeran a continuación:

No Señor. Secuencias de escape Importancia (valor real)
1 \norte nueva línea
2 \F alimentación de formulario
3 \r retorno de carro
4 \b retroceso
5 \t pestaña horizontal
6 \v pestaña vertical
7 \\ barra invertida

Shell sustituye una secuencia de escape con su valor real.

Ejemplo:

En este script de shell, primero hemos usado un comando de eco para imprimir una string. Tenga en cuenta que hemos utilizado una secuencia de escape (\n) al final de la string. Agregará un nuevo carácter de línea después de imprimir la string.

#!/bin/sh

// Print the string
echo -e "Hello World! \n"
  
// Print the string
echo -e "Hello GeeksforGeeks"

Producción:

Sustitución de variables:

El shell nos permite manipular el valor de una variable en función de su estado de inicialización. 

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 value .
4 ${miVariable:? mensaje} Si myVariable no está configurado (o es nulo), el mensaje se imprime como un error estándar.
5 ${miVariable:+valor} Si myVariable está configurado, el valor se sustituye por myVariable .

Ejemplo:

Estas expresiones se muestran en el siguiente script de shell.

#!/bin/sh


# If myVariable is unset or null 
# then assign 12 to it
echo ${myVariable:- 11}
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:+"Bhuwanesh"}
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

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

Producción:

Sustitución de comandos:

La sustitución de comandos es un mecanismo que siguen los programadores en un script bash. En este mecanismo, la salida de un comando reemplaza al comando mismo. Bash opera la expansión ejecutando un comando y luego reemplazando la sustitución del comando con la salida estándar del comando. En palabras simples, la salida de un comando UNIX se empaqueta y luego se usa como un comando.

Para entenderlo mejor, consideremos un ejemplo. El comando seq en Linux se usa para imprimir números de INICIO a FIN en pasos de INCREMENTO.

Sintaxis:

seq START INCREMENT END  

Tipo de retorno:

Imprime números de INICIO a FIN cada uno en la nueva línea por la diferencia de INCREMENTO.

Ejemplo:

En el siguiente script, estamos imprimiendo números del 2 al 20 con una diferencia de 2. En otras palabras, estamos imprimiendo números pares hasta el 30.

#!/bin/bash

# your code goes here

seq 2 2 30

Producción:

Podemos usar la salida del comando anterior como un nuevo comando. Considere la siguiente secuencia de comandos,

Ejemplo:

#!/bin/bash
# your code goes here
 
echo $(seq 2 2 20)

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 *