メイクファイルの「|true」が「||true」と同じ効果を持つ理由が何なのか混乱しています。

メイクファイルの「|true」が「||true」と同じ効果を持つ理由が何なのか混乱しています。

ファイルを削除する前にサービスを停止するmakefileがあります。サービスの停止に失敗すると、エラーとともに中断されます。これは明らかに必要ではないので、追加したかったのですが、|| true見逃しました|。進行中の作業:

stop service foo | true
rm /etc/init/foo.conf

なぜこれが機能し、何が起こっているのか混乱しています。これはtrue単なるキーワードではなく、アプリケーションという意味ですか?彼らは同じですか?それを使用する良い理由はありますか| true

ベストアンサー1

trueそしてfalseコアツール(通常はシェル組み込み)は0と0以外の値のみを返すため、その動作が必要な状況に適しています。マニュアルページから:

true - 何もしない、成功
false - 何もしない、失敗

したがって、出力をパイプstop service fooで接続するtrueと、それを無視してゼロを返します。技術的には機能しますが、|| true意図が何であるかを明確にするためにこれを使用する必要があり、それを使用しないプログラムに出力をパイプする理由はありません。

おすすめ記事