シェルスクリプトでコマンドの返り値を引数にし、それを更に別のコマンドの引数にしたい。
コマンドの返り値を引数にするにはバッククォートを使うがそれを2重(入れ子、ネスト)にすることができない。
例えばechoで入れ子を使ってみる。
$ echo a `echo b `echo c``
echo(c)の返り値をecho(b)に引渡しecho(a)に返したい。
が、bashでは"echo a"と"`echo b `"と"echo c"と"``"に区切られてしまってエラーを吐く。
調べてみるとバッククォートにコマンドの返り値を求めるのは古いらしいね。
返り値を求める入れ子はこうする。
$ echo a $(echo b $(echo c))
見た目にもわかりやすくなって良いね。
Lispっぽいし(笑)