バッククォートのネスト | ~magi mode~ver3.10

~magi mode~ver3.10

マジックの練習は辞めて今はパソコンばかりいじっている。
アニメ好きだがオシャレも好き。
二次元と三次元の両立を図る日々。
最近トレーニングにもハマってる。

シェルスクリプトでコマンドの返り値を引数にし、それを更に別のコマンドの引数にしたい。
コマンドの返り値を引数にするにはバッククォートを使うがそれを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っぽいし(笑)