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

Bash の ${} と $() の違い

$(cmd) cmd の結果を代入します 文字列として、(cmd; cmd) サブプロセスでコマンドのリストを実行します。

1 つ以上のコマンドの出力を変数に入れたい場合は、$( cmd ) 形式を使用してください。

ただし、多数のコマンドを実行してそれらを 1 つのユニットとして扱いたい場合は、() 形式を使用してください。

後者は、一連のコマンドをバックグラウンドで実行したい場合に便利です:

(git pull; make clean; make all) &

それらは別物です。

$() `` (バッククォート) のような式 (コマンドの実行) を評価します

> (echo ls)
ls

> $(echo ls)
file1  file2

> `echo ls`
file1  file2

> echo $(echo ls)
ls

それらは異なりますが、それらの間には記憶上の関係があります。

(...) シェル コマンドが実行される新しいサブシェルを開始するコマンドです。

$(...) は、新しいサブシェルを開始する式です。その展開は、実行するコマンドによって生成される標準出力です。

これは、bash の別のコマンド/式のペアに似ています :((...)) は算術文ですが、$((...)) は は算術式です。


Linux
  1. Linuxでの「su」コマンドと「su-」コマンドの違い

  2. ログインシェルと非ログインシェルの違いは?

  3. コマンドライン(bash)の「And」の違い??

  1. SnatとMasqueradeの違いは?

  2. bashの&>と>&の違いは何ですか?

  3. bash スクリプトのコマンドとターミナルのコマンドの違い

  1. 停止コマンドとシャットダウンコマンドの違いは?

  2. [[$ a ==Z*]]と[$a==Z *]の違いは?

  3. 「ifconfig」コマンドと「ip」コマンドの違い