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

シェルで`command`と$(command)を使用してコマンド出力を取得することの違いは何ですか?

この質問にはすでに回答があります :$(stuff)と `stuff`の違いは何ですか?

(6つの回答)
7年前に閉鎖されました。

`command`と$(command)を使用してシェルスクリプトでコマンド出力を収集することの違いは何ですか?例:

# IP1=$(ifconfig eth0 | grep -e "inet " | cut -d: -f2 | awk '{print $1}')
# IP2=`ifconfig eth0 | grep -e "inet " | cut -d: -f2 | awk '{print $1}'`
# echo $IP1 $IP2
> 192.241.145.112 192.241.145.112

承認された回答:

主な違いは、バックティックがネストしないことです。バックティックされたコマンドを別のコマンドの中に埋め込むことはできません。 (実際には可能ですが、バックスラッシュでエスケープする必要があり、それ以降はより毛深いものになります。)それが、新しい構文$(command)を思い付く主な動機だったと思います。 。

$(command) 構文は、ファイルの内容を補間するための便利なショートカットも提供します:$(<filename) $(cat filename)と同等です 。

別の違い:$() 一部の一般的なシェルではサポートされていません。


Linux
  1. コマンドの出力をシェル変数に割り当てる方法は?

  2. `cd`外部コマンドのポイント?

  3. コマンドの出力をシェル変数に保存しますか?

  1. Sudo Su –とSudo Su —の違いは何ですか?

  2. 「最後の」コマンドの出力?

  3. Lsコマンドの結果の補足を取得しますか?

  1. 複数のコマンドを同じ行に出力するための 3 つのトリック

  2. 出力をファイルに追加する方法は?

  3. シェルコマンドの出力をループするにはどうすればよいですか?