$(< file)
たとえば、次のようにzshからファイルを読み取ることができます。
% print 'Hello, world!' > test
% x=$(< test); print $x
Hello, world!
ただし、次のエラーがstderrに印刷されます。
% x=$(< doesnt-exist); print $x
zsh: no such file or directory: doesnt-exist
# The actual error in my script, for posterity.
% x=$(< /sys/class/hwmon/hwmon4/temp2_input); print $x
zsh: error when reading /sys/class/hwmon/hwmon4/temp2_input: no such device or address
このエラーをキャッチまたは削除する方法はありますか?読みやすさをテストしたり、cat 2>&1
終了コード(私が今使っているコード)を使って確認したりできますが、それがうまくいくかどうかを知りたいです$(< file)
。
答え1
変数の割り当て時にも一般的な方法でリダイレクトが可能です。
x=$(< doesnt-exist) 2>/dev/null ; print -r -- $x
それは沈黙しなければなりません。