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.