Результат подпроцесса сценария оболочки Unix - PullRequest
0 голосов
/ 09 мая 2011

Я пытаюсь получить результат подпроцесса. Но пока единственный результат, который я могу получить - это строка журнала. Я хотел бы проверить целочисленный результат, но не знаю как.

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 содержит журнал эха, как проверить результат?

Спасибо.

Ответы [ 3 ]

5 голосов
/ 09 мая 2011

Статус выхода подпроцесса доступен в $?переменная:

buildresult=$(xcodebuild bla bla)
rc=$?
if test $rc -ne 0; then
    echo "NOT OK!"
    exit $rc
fi
1 голос
/ 09 мая 2011

Использовать $?найти код возврата последней команды.Предполагается, что команда возвращает значимый код возврата.

$ ls 
   :
   :
$ echo $?
0

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

$ rm somefilethatdoesnotexist
rm: cannot remove `somefilethatdoesnotexist': No such file or directory
$ echo $?
1
1 голос
/ 09 мая 2011

или

buildresult=$(xcodebuild bla bla) || echo "NOT OK"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...