回答:
バックティックに非常に似ています ``。
コマンド置換(posix仕様)と呼ばれ、サブシェルを呼び出します。中かっこで$()
囲まれたコマンドまたはバッククォート( ``)の間のコマンドはサブシェルで実行され、出力は元のコマンドに配置されます。
バックティックとは異なり、$(...)
フォームはネストできます。そのため、別の置換内でコマンド置換を使用できます。
置換内のエスケープ文字には、麻の違いがあります。$(...)
フォームが好きです。
echo `echo \`echo foo\`` bar
POSIXまたはPOSIXのようなシェルでは(ksh
、bash
、ash
、zsh
、yash
...)、それはのようなものです``
:コマンド内は$()
その標準出力によって実行され、交換されます。$()
二重引用符で囲まない限り、単語分割とファイル名の生成が行われます。かくして
chmod 777 $(pwd)
次のものに置き換える必要があります。
chmod 777 "$(pwd)"
現在の作業ディレクトリパスでの単語の分割とファイル名の生成を回避します。
またはさらに良い(ディレクトリの名前が変更された場合に備えて、zshなどの一部のシェルの下を除く):
chmod 777 "$PWD"
以来は、$PWD
POSIXシェルにおける現在の作業ディレクトリへのパスを保持している特殊な変数です。
またはさらに良い:
chmod 777 .
以来.
、現在のディレクトリ内のエントリは、そのディレクトリ自体へのハードリンクです。