Subcapas de bash

Subcapas De Bash



A veces, requiere que ejecute uno o más comandos o scripts en segundo plano. Esta tarea se puede realizar escribiendo todos los comandos o secuencias de comandos en un archivo de secuencias de comandos y ejecutando el archivo con el signo ampersand (&) o ejecutando los comandos o secuencias de comandos en el subshell desde el shell actual. El subshell se puede usar para ejecutar múltiples comandos o scripts encerrándolos con $() o las comillas graves (`). Los métodos para usar la subcapa Bash se muestran en este tutorial.

Diferentes ejemplos de subcapa

Las diferentes formas de ejecutar el script en el subshell se muestran en esta parte del tutorial.

Ejemplo 1: Ejecute el subshell usando comillas simples y comillas dobles

Cree un archivo Bash con el siguiente script que imprima la fecha y hora actuales. A continuación, la variable $strVal se imprime encerrando el script de subshell entre comillas simples y comillas dobles.







#!/bin/bash

#Imprime el comando `fecha` en la subcapa

eco 'Hoy es `fecha` '

#Definir una variable de cadena

strVal = 'Subcapa Bash'

#Imprime la variable en la subcapa usando comillas simples

eco 'La salida de comillas simples:' '$(echo $strVal)'

#Imprimir la variable en la subcapa usando comillas dobles

eco 'La salida de comillas dobles:' ' $(echo $ValorCadena) '

El siguiente resultado aparece después de ejecutar el script. La secuencia de comandos de la subcapa se imprime como una cadena cuando se incluye entre comillas simples. El script de subshell se ejecuta cuando está encerrado entre comillas dobles:





Ejemplo 2: busque todos los archivos de la extensión particular usando el subshell

Cree un archivo Bash con el siguiente script que toma la extensión del archivo como una entrada del usuario. A continuación, se ejecuta el comando 'ls' en la subcapa para buscar todos los archivos de esa extensión en particular.





#!/bin/bash

eco -norte 'Ingrese el nombre de la extensión del archivo:'

#Tome el nombre de la extensión del archivo que se buscará

leer extensión

#Compruebe el valor de entrada

si [ [ $ext == '' ] ] ; entonces

#Imprimir mensaje de error

eco 'No se da prórroga'.

demás

eco 'Nombres de archivo con $ext extensión:'

#Imprimir todos los nombres de archivo con la extensión dada

eco ' $( echo `ls *.$ext` ) '

ser

El siguiente resultado aparece después de ejecutar el script con la entrada 'txt'. Según el resultado, existen tres archivos de texto en la ubicación actual:



El siguiente resultado aparece después de ejecutar el script con el valor vacío:

Ejemplo 3: Ejecutar la Expresión Aritmética en el Subshell

Cree un archivo Bash con el siguiente script donde se usa la variable del mismo nombre en el shell principal y el subshell. La operación aritmética se define en el shell principal y el subshell.

#!/bin/bash

#Definir una variable de shell principal

número = 10

#Imprime el resultado basado en la variable del shell principal

( ( resultado = $número + 5 ) )

eco 'La suma de $número +5= $resultado '

#Crear una variable de subcapa con el mismo nombre de la capa principal

( número = 20 ; ( ( resultado = $número + 10 ) ) ; eco 'La suma de $número +5= $resultado ' )

#Imprime el resultado basado en la variable del shell principal nuevamente

eco 'La suma de $número +5= $resultado '

El siguiente resultado aparece después de ejecutar el script. La primera y la última salida muestran el resultado del shell principal. La segunda salida muestra el resultado de la subcapa. La variable de la shell principal no se modifica por la variable de la subshell:

Ejemplo 4: ejecutar múltiples comandos en el subshell

Cree un archivo Bash con la siguiente secuencia de comandos que envía la salida del comando 'echo' al comando 'sed' que reemplaza el valor de cadena coincidente con otra cadena. La salida del comando 'echo' es 'JavaScript'. Entonces, este valor se compara con 'Java' y 'JavaScript'. Si se encuentra una coincidencia, las cadenas coincidentes se reemplazan por la cadena 'Tipo'.

#!/bin/bash

#Definir un valor de cadena

strVal = 'JavaScript'

#Imprime el valor de la cadena original

eco 'Valor de cadena: $strVal '

#Imprime el valor de la subcapa

eco -norte 'Valor de subcapa:'

eco ' $(echo $strVal | sed 's|Java|Tipo de JavaScript|') '

El siguiente resultado aparece después de ejecutar el script. Según el resultado, la cadena 'Java' se reemplaza por la cadena 'Tipo'. La salida de la subcapa es 'JavaScript TypeScript':

 


Conclusión

Se pueden ejecutar uno o más comandos o scripts usando el subshell sin afectar el shell principal. Los propósitos de usar el subshell se explican en este tutorial usando múltiples ejemplos. La subcapa realiza diferentes tipos de tareas, como buscar archivos, calcular la suma de números, reemplazar las cadenas, etc. en los ejemplos dados. El concepto de usar la subcapa se demuestra correctamente y los nuevos usuarios de Bash ahora podrán usar la subcapa después de leer este tutorial.