GNU/Linux >> Linux の 問題 >  >> Linux

コマンドラインで括弧はどのように解釈されますか?

grubの設定方法を読みながら 、次の2つの構文のいずれかを使用する必要があると主張する記事に出くわしました。

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

または

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

コマンドラインでは、括弧は特別な方法で解釈されるためです。かっこの何が特別なのですか?それらはどのように解釈されますか?

承認された回答:

括弧は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.

ここで、list 単なる通常のコマンドシーケンスです。

これは実際には非常に移植性が高く、bashだけに固有のものではありません。 けれど。 POSIXシェルコマンド言語の仕様には、(compound-list)に関する次の説明があります。 構文:

複合リストを実行します サブシェル環境で;シェル実行環境を参照してください。環境に影響を与える変数の割り当てと組み込みコマンドは、リストが終了した後も有効なままであってはなりません。


Linux
  1. コマンドラインを使用してMySQLでデータベースを作成する方法

  2. コマンドラインを使用してLinuxでtar.gzファイルを抽出する方法

  3. コマンドラインを使用してLinuxでユーザーを削除する方法

  1. コマンドラインを使用してディレクトリ内のファイルの数を取得するにはどうすればよいですか?

  2. コマンド ラインから電子メールを送信するにはどうすればよいですか?

  3. コマンドラインでファイルリストを含むファイルを暗号化するためにrarを使用するにはどうすればよいですか?

  1. Linuxコマンドラインからソフトウェアをインストールする方法

  2. コマンドラインでのファイルの検索(ハウツー)

  3. コマンドラインから IP アドレスを取得するにはどうすればよいですか?