난 이해가 안 돼요. 일부 튜토리얼에서 사람들이 이와 같은 설명자를 사용하는 것을 보았습니다(출력 및 오류용).
command 1> /dev/null
command 2> /dev/null
그런데 왜 이런 일을 하는 걸까요? 화면이나 파일에서는 출력을 볼 수 없습니다. 방금 사라졌습니다. 명령이나 그와 유사한 것을 테스트합니까?
답변1
때로는 출력을 보고 싶지 않을 때도 있습니다. 많은 도구는 stdout 또는 stderr에서 "쓸모 없는" 내용을 많이 인쇄하며 때로는 도구가 작업을 수행하기 -q/--quite
위해 출력 리디렉션과 같은 기능을 지원하지 않는 경우 이를 무시하고 싶을 때도 있습니다 . /dev/null
도구의 주요 기능이 무언가를 인쇄하는 것이 아니라면 성공 또는 실패에만 관심이 있을 수 있으며 이에 대한 반환 코드를 사용하게 됩니다(특히 스크립트에서).
예를 들어 특정 도구가 설치되어 있는지 확인하려고 할 수 있습니다. tool --version
또는 같은 것을 확인하고 싶을 수도 있지만 which tool
도구의 버전이나 경로에는 별로 관심이 없으며 도구가 사용 가능하고 반환 코드만 있으면 충분합니다. 예를 들어, 사용자에게 필요한 모든 종속성이 있는지 확인하려는 스크립트에서
$ which xyz >/dev/null 2>&1 || echo "you need to install xyz to proceed"
you need to install xyz to proceed
보다 좋아 보인다
$ which xyz || echo "you need to install xyz to proceed"
/usr/bin/which: no xyz in (/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/home/vtrefny/.local/bin:/home/vtrefny/bin)
you need to install xyz to proceed