💤
${} $() 整理
概要
${}
と$()
の整理
結論
${}
は変数展開
$()
はコマンド置換
変数展開 ${}
使用例
$ git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"
${ZDOTDIR:-$HOME}
の意味はZDOTDIRに値が指定されていたらその値で、されていなかったら$HOME
の値が適用されます。
$HOME
が~だったら、~/.zprezto配下にダウンロードされるということです。
コマンド置換 $()
$(コマンド)の部分が、コマンドの実行結果で置換されます。
コマンドの実行結果を別のコマンドの引数として利用したい時などに使います。
バッククォート(`) でもコマンド置換ができます。バッククォートよりもネストさせやすいのが特徴です。
使用例
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
↓こういうように解釈されているということになります。
/bin/bash -c "curlコマンドの実行結果"
Discussion