GNU/Linux >> Linux Esercitazione >  >> Linux

Come vengono interpretate le parentesi sulla riga di comando?

Durante la lettura di come configurare grub , mi sono imbattuto in un articolo in cui si afferma che è necessario utilizzare una delle due sintassi seguenti

echo \(hd0,0\) >> /boot/grub/grub.conf

o

echo '(hd0,0)' >> /boot/grub/grub.conf

perché, a riga di comando, le parentesi vengono interpretate in modo speciale. Cosa hanno di speciale le parentesi? Come vengono interpretati?

Risposta accettata:

Le parentesi denotano una subshell in bash. Per citare il man bash pagina:

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

dove un list è solo una normale sequenza di comandi.

Questo è in realtà abbastanza portatile e non specifico solo per bash anche se. La specifica POSIX Shell Command Language ha la seguente descrizione per (compound-list) sintassi:

Esegui elenco composto in un ambiente subshell; vedere Ambiente di esecuzione della shell. Le assegnazioni di variabili e i comandi integrati che influiscono sull'ambiente non rimarranno attivi al termine dell'elenco.


Linux
  1. Come trovare file in CentOS 8 sulla riga di comando

  2. Come impostare una variabile di ambiente sulla riga di comando e farla apparire nei comandi?

  3. Come riavviare Icewm dalla riga di comando?

  4. Come posso utilizzare rar per crittografare i file incluso l'elenco dei file nella riga di comando?

  5. Come ottengo il mio indirizzo IP dalla riga di comando?

Come installare il software dalla riga di comando di Linux

Come ripulire i tuoi dati dalla riga di comando

"Come fare" sulla riga di comando di Linux

Come utilizzare Nano, l'editor di testo della riga di comando di Linux

Come riavviare Debian usando la riga di comando

Come trovare file sulla riga di comando di Ubuntu