zshのプロセス置換を使用して、他のプログラムで読み取ることができる一時ファイルを作成したいと思います。ただし、生成されたファイルにはファイル拡張子がないため、そのファイルを読み取るプログラムは続行を拒否します。
これは次のように証明できます。
$ echo =(ls)
/tmp/zshmgIWvT
私が望むのは、次のようなファイル名を生成することです。/tmp/zshmgIWvT.wav
zshはこれを行うことができますか?
答え1
人々の深い場所のどこかでzshparam(1)
見つけることができます。
TMPSUFFIX
A filename suffix which the shell will use for temporary files
created by process substitutions (e.g., `=(list)'). Note that
the value should include a leading dot `.' if intended to be
interpreted as a file extension. The default is not to append
any suffix, thus this parameter should be assigned only when
needed and then unset again.
だから
% () { TMPSUFFIX=.wav; print =(ls); unset TMPSUFFIX }
/Users/jhqdoe/tmp/zshsQhnnV.wav
% print $TMPSUFFIX
%
さまざまなセキュリティ障害をTMPPREFIX
防ぐために、共有システムに特別に設定することもできます。/tmp