zshなら=(cmd ...)という手があるけど、これも内部的には一時ファイルを作ってるので見た目だけですねえ。
— eban (@eban) 2018年8月20日
プロセス置換を利用して鍵ファイルをsshコマンドに読ませられないか悩んでたときに教えてもらったのだけど、zshではプロセス置換で処理した出力結果を一時ファイルに保存して利用することができるらしい。
command ... =(command ...)
test-ubuntu% echo {a..e}{01..05} | xargs -n5
a01 a02 a03 a04 a05
b01 b02 b03 b04 b05
c01 c02 c03 c04 c05
d01 d02 d03 d04 d05
e01 e02 e03 e04 e05
test-ubuntu% echo =(echo {a..e}{01..05} | xargs -n5)
/tmp/zshfy9efL
test-ubuntu% cat =(echo {a..e}{01..05} | xargs -n5)
a01 a02 a03 a04 a05
b01 b02 b03 b04 b05
c01 c02 c03 c04 c05
d01 d02 d03 d04 d05
e01 e02 e03 e04 e05
test-ubuntu% ls -la /tmp/zsh*
zsh: no matches found: /tmp/zsh*
作成後はちゃんと削除してくれる。 こんな機能があったのか。残念ながらbashでは使えないのだけど、これは便利だ。