Při čtení informací o tom, jak nastavit grub
, narazil jsem na článek, který tvrdí, že musím použít jednu z následujících dvou syntaxí,
echo \(hd0,0\) >> /boot/grub/grub.conf
nebo
echo '(hd0,0)' >> /boot/grub/grub.conf
protože na příkazovém řádku jsou závorky interpretovány zvláštním způsobem. Co je zvláštního na závorkách? Jak jsou interpretovány?
Přijatá odpověď:
Závorky označují subshell v bash. Abych citoval man bash
stránka:
(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.
kde je list
je jen normální posloupnost příkazů.
To je ve skutečnosti docela přenosné a není specifické pouze pro bash
ačkoli. Specifikace POSIX Shell Command Language má pro (compound-list)
následující popis syntaxe:
Spusťte seznam sloučenin v prostředí subshell; viz Prostředí spouštění prostředí. Přiřazení proměnných a vestavěné příkazy, které ovlivňují prostředí, nezůstanou po dokončení seznamu v platnosti.