./NulFile
NUL을 포함합니다. 명령 확장은 NUL을 제거할 때 경고를 인쇄합니다. 경고를 억제하는 방법이 있습니까?
리디렉션이 작동하지 않는 이유는 무엇입니까?
$ filecontent="$(cat ./NulFile)" 1>/dev/null 2>&1
bash: warning: command substitution: ignored null byte in input
답변1
명령 그룹에 넣고 해당 그룹의 출력을 리디렉션합니다.
$ foo=$(cat /bin/sleep)
bash: warning: command substitution: ignored null byte in input
$ { foo=$(cat /bin/sleep); } 2>/dev/null
$
{ ...; }
서브쉘이 아니기 때문에 변수를 계속 사용할 수 있습니다.
$ echo ${#foo}
19786
경고는 셸에서 발생하므로 이를 작동시키려면 셸의 출력을 리디렉션해야 합니다. 그룹 내에서는 쉘의 출력도 리디렉션됩니다(그룹 내에서만).