Mientras leía cómo configurar grub
, me encontré con un artículo que decía que necesitaba usar una de las siguientes dos sintaxis,
echo \(hd0,0\) >> /boot/grub/grub.conf
o
echo '(hd0,0)' >> /boot/grub/grub.conf
porque, en la línea de comando, los paréntesis se interpretan de manera especial. ¿Qué tienen de especial los paréntesis? ¿Cómo se interpretan?
$()
y()
?$()
sustitución del comando es,()
es una subshell. Ambos ejecutan comandos, la diferencia es lo que le sucede a la salida. Los nombres son mucho más fáciles de buscar que los símbolos. Consulte también unix.stackexchange.com/q/213530/9537Una lista de comandos incrustada entre paréntesis se ejecuta como un subshell.
Las variables en una subshell no son visibles fuera del bloque de código en la subshell. No son accesibles para el proceso padre, para el shell que lanzó el subshell. Estas son, en efecto, variables locales.
Ver Linuxtopia - Capítulo 20. Subshell
fuente