2016-06-20 18 views
-1

bashスクリプトで実行エラーを検出して終了します。bash実行エラーの取得

hereのように私はtry/yell/dieアプローチを使っていました。

yell() { echo "$0: $*" >&2; } 
die() { echo -e "\e[31m$*\e[0m"; exit 1; } 
try() { "[email protected]" || die "cannot $*"; } 

しかし、これは私のコマンドラインをラップする必要があります。

try curl https://blah.com | try bash 

より良いアプローチが使用されるようです。

set -e 
set -o pipefail 
set -E 

try/yell/dieに反対setアプローチを、使用する任意の欠点はありますか?

+3

いくつかの関連するものについて[なぜ私は期待したことを-e(または-o errexit、またはtrap ERRを設定しないのですか?)](http://mywiki.wooledge.org/BashFAQ/105)を参照してください。討論。 –

+0

リンク@TomFenechをありがとう、これは答えimhoする必要があります! – sleepycal

答えて

関連する問題