GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie werden Klammern in der Befehlszeile interpretiert?

Beim Lesen, wie man grub einrichtet , bin ich auf einen Artikel gestoßen, in dem behauptet wird, dass ich eine der folgenden beiden Syntaxen verwenden muss,

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

oder

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

denn auf der Kommandozeile werden Klammern auf besondere Weise interpretiert. Was ist das Besondere an den Klammern? Wie werden sie interpretiert?

Akzeptierte Antwort:

Klammern bezeichnen eine Subshell in bash. Um den man bash zu zitieren Seite:

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

wo eine list ist nur eine normale Folge von Befehlen.

Dies ist tatsächlich ziemlich portabel und nicht nur für bash spezifisch obwohl. Die Spezifikation der POSIX-Shell-Befehlssprache enthält die folgende Beschreibung für (compound-list) Syntax:

Führen Sie compound-list aus in einer Subshell-Umgebung; siehe Shell-Ausführungsumgebung. Variablenzuweisungen und eingebaute Befehle, die sich auf die Umgebung auswirken, sollen nach Ende der Liste nicht wirksam bleiben.


Linux
  1. So erstellen Sie eine Datenbank in MySQL über die Befehlszeile

  2. So extrahieren Sie die tar.gz-Datei in Linux mithilfe der Befehlszeile

  3. So entfernen Sie Benutzer in Linux über die Befehlszeile

  4. Wie starte ich Icewm von der Befehlszeile aus neu?

  5. Wie wird der Platzhalter * als Befehl interpretiert?

So bereinigen Sie Ihre Daten in der Befehlszeile

„Getting to Done“ in der Linux-Befehlszeile

So verwenden Sie Nano, den Linux-Befehlszeilen-Texteditor

So starten Sie Debian über die Befehlszeile neu

So finden Sie Dateien in der Ubuntu-Befehlszeile

Wie erhalte ich meine IP-Adresse über die Befehlszeile?