Tumbleweed의 .bashrc에서 "|| true"의 목적은 무엇입니까?

Tumbleweed의 .bashrc에서 "|| true"의 목적은 무엇입니까?

오픈수세 텀블위드(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 -s0이 아닌 종료 코드로 실패하지만 다른 결과가 발생하는 것을 원하지 않습니다. || true전체 명령 목록(source 포함 ~/.alias)이 항상 성공적인 상태로 종료되는지 확인합니다.

이는 쉘 시작 스크립트의 경우 드물지만 .bashrc포함된 경우 특히 관련이 있습니다 .set -e

이것을 작성하는 또 다른 방법은 다음과 같습니다.

if test -s ~/.alias; then . ~/.alias; fi

~/.alias하지만 소싱으로 인해 오류가 발생한 경우 0이 아닌 종료 코드로 종료됩니다 .

또한보십시오"command || true" 패턴이 왜 유용한가요?

답변2

0이 아닌(실패) 상태를 반환 || true하더라도 전체 명령이 "성공" 상태를 반환하도록 보장합니다 ../.aliases

(오류 발생 시 종료)를 사용하는 경우 편리합니다 set -e.

관련 정보