
오픈수세 텀블위드(openSUSE Tumbleweed)는
test -s ~/.alias && . ~/.alias || true
의 내용으로 ~/.bashrc
.
내가 왼쪽 부분을 이해하는 방식 || true
은 다음과 같습니다.
~/.alias
존재하고 크기가 0보다 큰지 확인하는 검사가 있습니다 .- 조건이 충족되면 파일이 소스로 제공됩니다.
그렇다면 왜 || true
필요한가?
GNU bash, 버전 5.0.16(1)-릴리스(x86_64-suse-linux-gnu)
답변1
|| true
명령이 실패하더라도 상관하지 않는 상황에서 유용합니다. 이 특별한 경우 ~/.alias
존재하지 않으면 test -s
0이 아닌 종료 코드로 실패하지만 다른 결과가 발생하는 것을 원하지 않습니다. || true
전체 명령 목록(source 포함 ~/.alias
)이 항상 성공적인 상태로 종료되는지 확인합니다.
이는 쉘 시작 스크립트의 경우 드물지만 .bashrc
포함된 경우 특히 관련이 있습니다 .set -e
이것을 작성하는 또 다른 방법은 다음과 같습니다.
if test -s ~/.alias; then . ~/.alias; fi
~/.alias
하지만 소싱으로 인해 오류가 발생한 경우 0이 아닌 종료 코드로 종료됩니다 .
답변2
0이 아닌(실패) 상태를 반환 || true
하더라도 전체 명령이 "성공" 상태를 반환하도록 보장합니다 ../.aliases
(오류 발생 시 종료)를 사용하는 경우 편리합니다 set -e
.