スクリプトはテスト結果で終了しますが、これは呼び出し側の観点からは望ましくありません。どのように実装する必要がありますか?
#!/bin/bash
test -n "" && echo "test passed"
答え1
明示的な内容を追加してください。
exit 0
エラーが報告されたくない場合は、スクリプトの最後に追加してください。
次のようにすることもできます。
#! /bin/sh -
ret=0
cmd || ret=$? # we care about the failure of cmd
test -n "" && echo test # we don't care about the failure of test or echo
exit "$ret"
具体的な例として、次のように書き直すことができます。
test -z "" || echo test passed
(失敗してもエラーは報告され続けますが、echo
問題が発生したことを示すため、報告することをお勧めします。)
または:
test -n "" && echo test passed || : ignore
この:
コマンドは常に成功終了ステータス。