`command`よりセクシーなコマンド結果展開
echo `date`
=> Mon, Nov 25, 2013 4:13:50 PM
のように ` バッククォート でコマンドの実行結果を展開して使用できる
(この例では ` 使う必要もないけど)
が、
この記法の抱える問題として、ネストできないというのがある。
以下のパターンを考える。
#dateの出力形式をYYYYMMDDにする用のフォーマッタを作って
echo "+%Y%m%d" > formatter
#フォーマッタを読み込み、展開してdateコマンドに渡す。
echo `date `cat formatter``
これだと
`date `
と
``
がバッククォートの範囲となってしまい、期待通りの動作にならない(´・ω・`)
これを解決するためには、次のようにする。
#dateの出力形式をYYYYMMDDにする用のフォーマッタを作って
echo "+%Y%m%d" > formatter
#フォーマッタを読み込み、展開してdateコマンドに渡す。
echo $(date $(cat formatter))
$(command) も `command` と同様、コマンドを実行して結果を展開してくれるけど、
コチラはネストもOKよ(`・ω・´)はい、セクシー