GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo se interpretan los paréntesis en la línea de comandos?

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:

La lista
(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.


Linux
  1. Cómo instalar software desde la línea de comandos de Linux

  2. Búsqueda de archivos en la línea de comandos (instrucciones)

  3. ¿Cómo reiniciar Icewm desde la línea de comandos?

  4. ¿Cómo se interpreta el comodín * como un comando?

  5. ¿Cómo obtengo mi dirección IP desde la línea de comandos?

Cómo limpiar sus datos en la línea de comando

'Getting to Done' en la línea de comandos de Linux

Cómo usar Nano, el editor de texto de línea de comandos de Linux

Cómo reiniciar Debian usando la línea de comandos

Cómo encontrar archivos en la línea de comandos de Ubuntu

¿Cómo uso rar para cifrar archivos, incluida la lista de archivos en la línea de comandos?