%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EC%9D%BD%EC%9D%84%20%EB%95%8C%20%EC%98%A4%EB%A5%98%EB%A5%BC%20%ED%8F%AC%EC%B0%A9%ED%95%98%EA%B1%B0%EB%82%98%20%EC%A0%9C%EA%B1%B0%ED%95%A0%20%EC%88%98%20%EC%9E%88%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
$(< 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
그건 침묵해야 합니다.