1. ホーム
  2. bash

[解決済み] シェルでドル記号と括弧の中にコマンドを入れるとはどういう意味か: $(command)

2022-06-05 10:01:21

質問

私はちょうどシェルのコードの次の行を理解したいです。それは、現在の作業ディレクトリを取得するために使用されています。私はそれを知っている $(variable) という名前は変数名の中の値を返すことは知っていますが $(command) は何を返すのだろうか?コマンドを実行した後の値を返すのでしょうか?その場合は ` を使ってコマンドを実行します。

CWD="$(cd "$(dirname $0)"; pwd)"

同じ出力が、異なるバージョンのシェルで、次のコードの行から取得できます。

DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

の意味が理解できません。 $(cd..$(dirname .

このコマンドがどのように実行されるのか、どなたか教えていただけませんか?

どのように解決するのですか?

の使用法 $ のように ${HOME} はHOMEの値を与える。の使い方は $ のように $(echo foo) というのは、括弧の中にあるものをサブシェルで実行し、その値を返すという意味です。私の例では、次のようになります。 foo では echo と書くと foo を標準出力します。