2011-05-09 88 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