파일을 삭제하기 전에 서비스를 중지하는 makefile이 있습니다. 서비스 중지에 실패하면 오류와 함께 중단됩니다. 이것은 분명히 필요하지 않기 때문에 추가하고 싶었지만 || true
놓쳤습니다 |
. 진행 중인 작업:
stop service foo | true
rm /etc/init/foo.conf
왜 이것이 작동하고 무슨 일이 일어나고 있는지 혼란 스럽습니다. 이것이 true
단순한 키워드가 아니라 애플리케이션이라는 뜻인가요? 그들은 동일합니까? 그것을 사용하는 좋은 이유가 있습니까 | true
?
답변1
true
그리고 false
는핵심 도구(일반적으로 쉘 내장)은 0과 0이 아닌 값만 반환하므로 해당 동작이 필요한 상황에 적합합니다. 매뉴얼 페이지에서:
true - 아무것도 하지 않음, 성공
false - 아무것도 하지 않음, 실패
따라서 출력을 파이프 stop service foo
로 연결 true
하면 이를 무시하고 0을 반환합니다. 기술적으로는 작동하지만 || true
의도가 무엇인지 분명하게 알 수 있도록 이를 사용해야 하며 이를 사용하지 않는 프로그램에 출력을 파이프할 이유가 없습니다.