似てて紛らわしいものシリーズ `バッククオートと $() について
bash の記号で初心者泣かせの、似てて紛らわしかったり、使い分けがわからなかったり、読み方を間違えてパニックになる記号について書く
``
と $( )
の違いのついて
コマンドの実行結果で置換される記述``
と $( )
はどちらもほぼ同じものです。
ただし、圧倒的な使いやすさの特徴差があります。それは複数重ねがけするときです。
ネストできる$()
とネストが不便な ``
$() は重複して記述が圧倒的に楽です。
echo $( dirname $(realpath ~/Desktop/ ) )
同じことを バッククオートで書くとエスケープ地獄です。。。これはしんどすぎる。
echo ` dirname \`realpath ~/Desktop/ \` `
ネストしないならバッククオートの方が読みやすいかも?
ネストしないなら、バッククオートの方が読みやすいかもしれない。
echo `brew --prefix`/opt/openssl echo $(brew --prefix)/opt/openssl
この辺は使う人の好みなのかもしれないです。
ruby や php や javascript でもバッククオートをよく使うので慣れてる方が読みやすいと感じるのかも?