4
ln -s /var/log/$SERVICE_NAME $RPM_INSTALL_PREFIX/logs || :

rpm 仕様ファイルでは、すべての行が次で終わります|| :

の意味は何|| :ですか?なぜそこにあるのですか?

4

5 に答える 5

14

rpm 操作がキャンセルされないように、エラーは無視されます。

||前のコマンドが失敗した場合に次のコマンドを実行し、:常に成功します。

于 2011-04-21T00:01:06.663 に答える
3

終了コードを飲み込みます。

||前の処理が失敗した場合 (つまり、ゼロ以外の終了コードを持つ)、その後の処理を行います。:「何もしない」コマンドです。それらをまとめて…</p>

于 2011-04-21T00:02:05.077 に答える
2

私は他の人が答えたことを知っていますが、私は置くことを好みます:

command || /bin/true

私見は、bashスクリプト/仕様ファイルを読んでいる次の人にそれをより明白にします.

于 2011-07-09T14:11:24.277 に答える
2
`||` is OR operator. `:` means "do nothing". 

あなたの声明は、「ソフトリンクを行うか、何もしない」と言っています

于 2011-04-21T00:04:35.533 に答える
1

それは単にORを意味します。このような小さなテストを試すことができます

ls nofile-here-like || echo 'Not here'

ファイルが存在しない場合、エコーが出力されます。既存のファイルで試してみてください。

于 2011-04-21T00:06:05.597 に答える