$(< file)을 사용하여 파일을 읽을 때 오류를 포착하거나 제거할 수 있습니까?

$(< file)을 사용하여 파일을 읽을 때 오류를 포착하거나 제거할 수 있습니까?

$(< 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

그건 침묵해야 합니다.

관련 정보