コマンドを受け取り、evalを使用して実行し、コマンドの成功に基づいて後処理を行うシェルスクリプトで関数を作成しようとしています。残念ながら、コードは私が期待するように動作していません。これが私が持っているものです:
#!/bin/sh
...
function run_cmd()
{
# $1 = build cmd
typeset cmd="$1"
typeset ret_code
eval $cmd
ret_code=$?
if [ $ret_code == 0 ]
then
# Process Success
else
# Process Failure
fi
}
run_cmd "xcodebuild -target \"blah\" -configuration Debug"
コマンド($cmd
)が成功すると、正常に機能します。コマンドが失敗すると(たとえば、コンパイルエラー)、失敗を処理する前にスクリプトが自動的に終了します。evalが終了するのを防ぐ方法はありますか、それとも、希望する動作を実現できる別のアプローチがありますか?