シェル芸botで遊んでた際、echo-sdをネストさせて表示するという処理があったので、なんかいい感じに回数増やせないかなと思って調べてみた。 で、パイプ付きの処理をブレース展開させてevalで実行させて、その時に最後にcatで出力を読み込ませてみたらいい感じに処理させることができた。
command | eval 'command |'{,,} cat
例えば、echo-sdをネストさせる場合だと以下のようになる。
echo-sd | eval 'xargs echo-sd |'{,,,} cat
他に使いみち無いかな…と思って考えてみたところ、hashのストレッチングに使えないかなと思ったのでやってみた。 ブレース展開時にパイプでつなげておけば、セットで処理できるようだ。
printf password |eval 'sha1sum|cut -d" " -f1|'{,,,} cat
blacknon@BS-PUB-UBUNTU-01:~$ printf password |eval 'sha1sum|cut -d" " -f1|' cat
5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8
blacknon@BS-PUB-UBUNTU-01:~$ printf password |eval 'sha1sum|cut -d" " -f1|'{,} cat
642f03cb48c7b584099b8670ac40d393fc63690c
blacknon@BS-PUB-UBUNTU-01:~$ printf password |eval 'sha1sum|cut -d" " -f1|'{,,} cat
d9a6ea3bf80e366ccb9bef5c31d6960d5476833f
blacknon@BS-PUB-UBUNTU-01:~$ printf password |eval 'sha1sum|cut -d" " -f1|'{,,,} cat
866e7e9c73529a57348bfa3a33c7fcdc906ee1ae