다음과 같이 파일 내용을 변수로 읽었습니다.
var=$(<somefile)
하지만 파일이 존재하지 않으면 해당 오류 메시지가 나타납니다.
bash: somefile: No such file or directory
cat 명령을 사용하지 않고 stderr를 >/dev/null로 리디렉션할 수 있습니까?
답변1
이 경우 다음을 사용할 수 있습니다 cat
.
var=$( cat somefile 2>/dev/null )
또는 파일이 먼저 존재하는지 테스트하십시오.
if [ -f somefile ]; then
var=$(<somefile)
fi
이전 예제의 경쟁 조건을 피하려면(이론적으로 테스트와 읽기 사이에 파일이 사라질 수 있음):
if cp somefile myname 2>/dev/null; then
var=$(<myname)
rm -f myname
fi
다음은 작동하지 않습니다:
var=$(<somefile) 2>/dev/null
var=$(<somefile 2>/dev/null)
답변2
당신은 그것을 사용할 수 있습니다 :
{ var=$(<somefile); } 2> /dev/null