Zsh

使用 $(< file) 讀取文件時,您可以擷取或消除錯誤嗎?

  • March 29, 2022

我可以使用 zsh 讀取文件$(&lt; file);例如:

% print 'Hello, world!' &gt; test
% x=$(&lt; test); print $x
Hello, world!

但是,錯誤會列印到 stderr;例如:

% x=$(&lt; doesnt-exist); print $x
zsh: no such file or directory: doesnt-exist

# The actual error in my script, for posterity.
% x=$(&lt; /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&gt;&1並檢查退出程式碼(這是我現在使用的),但我想知道是否$(&lt; file)也可以使用。

即使在進行變數賦值時,您也可以以正常方式重定向。

x=$(&lt; doesnt-exist) 2&gt;/dev/null ; print -r -- $x

那應該是沉默的。

引用自:https://unix.stackexchange.com/questions/697144