Tumbleweed の .bashrc の "|| true" の目的は何ですか?

Tumbleweed の .bashrc の "|| true" の目的は何ですか?

openSUSEタンブルウィードは

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ゼロ以外の終了コードで失敗しますが、それによって他の結果が生じることは望ましくありません。 は、|| true完全なコマンド リスト (source を含む) が常に成功ステータスで終了することを保証します~/.alias

.bashrcこれは、 が含まれている場合に特に関連しますset -eが、シェルの起動スクリプトでは珍しいことです。

これを別の書き方で書くと

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

~/.aliasしかし、ソース取得によってエラーが発生した場合は、ゼロ以外の終了コードで終了します。

参照パターン「command || true」が便利なのはなぜですか?

答え2

は、ゼロ以外のステータス (失敗) が返される|| true場合でも、コマンド全体が「成功」ステータスを返すことを保証します。./.aliases

(エラー時に終了)を使用している場合に便利ですset -e

関連情報