Subshells de Linux para principiantes con ejemplos

Subshells de Linux para principiantes con ejemplos

Hacer uso de subshells en Bash le proporciona la capacidad de generar información confidencial de contexto desde la derecha dentro de su comando bash. Por ejemplo, si desea modificar una cadena de texto justo dentro de un eco Declaración, entonces esto se puede hacer fácilmente con subshells.

En este tutorial aprenderás:

  • Cómo usar emplear el uso de subshells en Bash
  • Cómo usar subshells para obtener información confidencial de contexto
  • Ejemplos de uso básico de subshell
Subshells de Linux para principiantes con ejemplos

Requisitos y convenciones de software utilizados

Requisitos de software y convenciones de línea de comandos de Linux
Categoría Requisitos, convenciones o versión de software utilizada
Sistema Independiente de la distribución de Linux
Software Línea de comando bash, sistema basado en Linux
Otro Cualquier utilidad que no esté incluida en el shell bash de forma predeterminada se puede instalar utilizando sudo apt-get instalación de utilidad de utilidad (o yum instalación para sistemas basados ​​en redhat)
Convenciones # - requiere que los comandos de Linux se ejecuten con privilegios raíz directamente como un usuario raíz o mediante el uso de sudo dominio
$-Requiere que los comandos de Linux se ejecuten como un usuario regular no privilegiado

Ejemplo 1: Dos sintaxis diferentes

Bash permite dos sintaxis de subshell diferentes, a saber ps y una ticket de fondo rodeadas de declaraciones. Veamos algunos ejemplos fáciles para comenzar:

$ echo '$ (echo' a ')' $ (echo a) $ echo "$ (echo 'a')" a $ echo "a $ (echo 'b') c" abc $ echo "a'Co 'b "C" ABC 


En el primer comando, como ejemplo, usamos ' comillas simples. Esto dio como resultado que nuestro comando subshell, dentro de las citas individuales, se interprete como texto literal en lugar de un comando. Esta es una fiesta estándar: ' indica literal, " indica que la cadena se analizará para subshells y variables.

En el segundo comando intercambiamos el ' a " y así la cadena se analiza para comandos y variables reales. El resultado es que se está iniciando una subshell, gracias a nuestra sintaxis de subshell (ps), y el comando dentro de la subshell (hacer eco 'a') se está ejecutando literalmente y, por lo tanto, un a se produce, que es entonces insertado en el nivel general / superior eco. El comando en esa etapa se puede leer como Echo "A" y así la salida es a.

En el tercer comando, ampliamos aún más esto para que sea más claro cómo las subshells funcionan en contexto. Hacemos eco de la carta b dentro de la subshell, y esto se une a la izquierda y a la derecha por las letras a y C producir la salida general para ser a B C de manera similar al segundo comando.

En el cuarto y último comando, ejemplificamos la sintaxis de subshell de Bash alternativa de usar las tarjetas posteriores en lugar de ps. Es importante saber que ps es la sintaxis preferida, y que en algunos casos remotos la sintaxis basada en la tarea posterior puede generar algunos errores de análisis donde el ps no es. Por lo tanto, te recomendaría encarecidamente que uses siempre el ps Sintaxis para subshells, y esto también es lo que usaremos en los siguientes ejemplos.

Ejemplo 2: un poco más complejo

$ touch a $ echo "-$ (ls [a-z])" -a $ echo "-=-|| $ (ls [a-z] | xargs ls -l) ||-=-"-=-|| -rw -rw-r-- 1 Roel Roel 0 Sep 5 09:26 A ||-=- 

Aquí, primero creamos un archivo vacío utilizando el tocar un dominio. Posteriormente, usamos eco para generar algo que nuestra subshell $ (LS [A-Z]) Generará. Claro, podemos ejecutar el LS directamente y produce más o menos el mismo resultado, pero tenga en cuenta cómo estamos agregando - a la salida como prefijo.

En el comando final, insertamos algunos caracteres en la parte delantera y final de la eco comando que hace que la salida se vea un poco más agradable. Usamos una subshell para encontrar primero el a Archivo que creamos anteriormente (LS [A-Z]) Y luego, todavía dentro de la subshell, pase los resultados de este comando (que sería solo a literalmente - yo.mi. el archivo que creamos en el primer comando) al LS -L Usando la tubería (|) y el Xargs dominio. Para obtener más información sobre XARGS, consulte nuestros artículos XARGS para principiantes con ejemplos y Xargs de múltiples roscas con ejemplos.

Ejemplo 3: citas dobles dentro de subshells y sub-subshells!

echo "$ (echo" $ (echo "funciona") "| sed 's | it | it seguramente |')" Seguramente funciona 


Genial, no? Aquí vemos que se pueden usar citas dobles dentro de la subshell sin generar ningún error de análisis. También vemos cómo se puede anidar una subshell dentro de otra subshell. ¿Puedes analizar la sintaxis?? La forma más fácil es comenzar "en el medio o el núcleo de todas las subshells", que en este caso sería el simple Echo "Funciona".

Este comando saldrá funciona Como resultado de la llamada de subshell $ (echo "funciona"). Imagen funciona en lugar de la subshell, yo.mi.

echo "$ (echo" funciona "| sed 's | it | it seguramente |')" Seguramente funciona 

Esto ya se ve más simple. A continuación, es útil saber que el sed El comando hará un sustituto (gracias a la s comando justo antes del | separador de comando) del texto él a Seguramente. Puedes leer el sed ordenar como reemplazar __it__ con __it seguramente__. La salida de la subshell será asíseguramente funciona ', yo.mi.

echo "seguramente funciona" seguramente funciona 

Conclusión

En este artículo, hemos visto que subshells seguramente trabaja (juego de palabras), y que pueden usarse en una amplia variedad de circunstancias, debido a su capacidad de insertarse en línea y dentro del contexto del comando general. Las subshells son muy poderosas y una vez que comiences a usarlas, bueno, es probable que no se detenga. Muy pronto estarás escribiendo algo como:

$ Var = "adiós"; echo "gracias $ (echo" $ var "| sed 's |^| y |')" | sed 's | k | k you |' 

Este es para que intentes jugar con! Gracias y adiós

Tutoriales de Linux relacionados:

  • Cómo usar subshells Bash dentro de declaraciones
  • Subshells de Linux avanzados con ejemplos
  • Cosas para instalar en Ubuntu 20.04
  • Cosas que hacer después de instalar Ubuntu 20.04 fossa focal Linux
  • Una introducción a la automatización, herramientas y técnicas de Linux
  • Scripting de bash y gestión de procesos multiprocesos en el ..
  • Mastering Bash Script Loops
  • Comandos básicos de Linux
  • Comandos de Linux: los 20 comandos más importantes que necesitas ..
  • Cosas que hacer después de instalar Ubuntu 22.04 Jellyfish de Jammy ..