2011-05-09 125 views
0

我試圖得到一個子進程的結果。但現在唯一的結果是日誌字符串。 我想測試整數結果,但我不知道如何。unix shell腳本子進程結果

buildresult=$(xcodebuild -project $projectfile -nodistribute -activetarget -sdk macosx10.5 "PRODUCT_VERSION_NUM=$PRODUCT_VERSION" 'MACOSX_DEPLOYMENT_TARGET=10.4' 'ARCHS=$(ARCHS_STANDARD_32_BIT)' 'DEMO_PREPROCESSOR_FLAG=_FLUX_DEMO_' "PRODUCT_NAME=$PRODUCTS_ITEM-Demo" 'BASEPRODUCT_NAME=null' -configuration Release build) 

$ buildresult包含echo日誌,如何測試結果?

謝謝。

回答

5

子進程的退出狀態在$?中可用。變量:

buildresult=$(xcodebuild bla bla) 
rc=$? 
if test $rc -ne 0; then 
    echo "NOT OK!" 
    exit $rc 
fi 
+0

簡單&工作,謝謝! – Ziggy 2011-05-09 09:46:53

1

buildresult=$(xcodebuild bla bla) || echo "NOT OK" 
1

使用$?找到最後一個命令的返回碼。這假定該命令返回有意義的返回碼。

$ ls 
    : 
    : 
$ echo $? 
0 

$ dgdg 
dgdg: command not found 
$ echo $? 
127 

$ rm somefilethatdoesnotexist 
rm: cannot remove `somefilethatdoesnotexist': No such file or directory 
$ echo $? 
1