Mientras leía sobre cómo configurar grub
, me encontré con un artículo que afirma que necesito 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 una manera especial. ¿Qué tienen de especial los paréntesis? ¿Cómo se interpretan?
Respuesta aceptada:
Los paréntesis denotan una subcapa en bash. Para citar el man bash
página:
(list) list is executed in a subshell environment (see COMMAND
EXECUTION ENVIRONMENT below). Variable assignments and builtin
commands that affect the shell's environment do not remain in
effect after the command completes. The return status is the
exit status of list.
donde una list
es solo una secuencia normal de comandos.
En realidad, esto es bastante portátil y no es específico solo de bash
aunque. La especificación del lenguaje de comandos de shell POSIX tiene la siguiente descripción para (compound-list)
sintaxis:
Ejecutar lista-compuesta en un entorno de subcapa; consulte Entorno de ejecución de Shell. Las asignaciones de variables y los comandos integrados que afectan el entorno no permanecerán en vigor después de que finalice la lista.