設定方法を読みながら、grub
次の2つの構文のいずれかを使用する必要があるという記事を見つけました。
echo \(hd0,0\) >> /boot/grub/grub.conf
または
echo '(hd0,0)' >> /boot/grub/grub.conf
コマンドラインでは、括弧は特別な方法で解釈されます。括弧の特別な点は何ですか?どう説明しますか?
答え1
括弧は bash のサブシェルを表します。このページを引用するにはman bash
:
(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.
ここで、aはlist
一般的なコマンドシーケンスです。
これは実際に移植性に優れていますbash
。これPOSIX シェルコマンド言語仕様構文は次のように説明されています(compound-list)
。
実装する化合物一覧サブシェル環境では、次を参照してください。シェル実行環境。環境に影響を与える変数割り当ておよび組み込みコマンドは、リストの最後まで残してはいけません。
答え2
間にコマンドリストを含める括弧サブシェルとして実行します。
サブシェルの変数は、サブシェルのコードブロックの外側には表示されません。親プロセスと子シェルを開始したシェルからはアクセスできません。実際、これはローカル変数です。