`if` 문의 "">/dev/null 2>&1"

`if` 문의 "">/dev/null 2>&1"

다음 조건이 이해가 되지 않습니다 if. 나는 이것이 /dev/null 2 > &1오류 스트림으로 출력을 보내고 있다는 것을 알고 있습니다(내가 틀렸다면 정정해 주십시오). 하지만 if특정 상태에 있을 때는 이해가 안 돼요.

if /usr/bin/egrep -e "$param1" -e "$param2" -e "param3" ${file} > /dev/null 2>&1
then 
bla bla

답변1

ifgrep 명령의 출력이 아니라 grep의 종료 코드(기준과 일치하는 일부 행을 찾았는지 여부)에만 관심이 있으므로 모든 출력을 /dev/null로 리디렉션합니다. 이는 갈 곳이 없음을 의미합니다 .

이 리디렉션은 두 부분으로 작동합니다.

  • > /dev/nullegrep이 일반적으로 라인을 출력하는 곳으로 표준 출력을 리디렉션합니다.
  • 2>&1또한 오류 출력을 표준 출력과 동일한 위치인 /dev/null로 리디렉션합니다. 이는 egrep의 오류 메시지를 억제하기 위한 것입니다.

관련 정보