다음 조건이 이해가 되지 않습니다 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
if
grep 명령의 출력이 아니라 grep의 종료 코드(기준과 일치하는 일부 행을 찾았는지 여부)에만 관심이 있으므로 모든 출력을 /dev/null로 리디렉션합니다. 이는 갈 곳이 없음을 의미합니다 .
이 리디렉션은 두 부분으로 작동합니다.
> /dev/null
egrep이 일반적으로 라인을 출력하는 곳으로 표준 출력을 리디렉션합니다.2>&1
또한 오류 출력을 표준 출력과 동일한 위치인 /dev/null로 리디렉션합니다. 이는 egrep의 오류 메시지를 억제하기 위한 것입니다.