2015-03-02 2 views
2

Я использую пользовательскую команду Go для выполнения сценария оболочки. Проблема в том, что если сценарий не работает по какой-либо причине, сборка все еще выполняется. Как я могу сбой сборки, если что-то пошло не так в моем сценарии оболочки?Сбой сборки в случае сбоя пользовательской команды

+0

Помог ли мой ответ для вас? – jeremyjjbrown

ответ

3

организовать логику в сценарии, так что если скрипт не он выходит с exit code> = 1

#!/bin/bash 
N=0 
#do your logic here and increment N for each failure. 
ls /non/existent/dir || { 
    echo "can't ls /non/existent/dir" 
    N=$((N+1)) 
} 
#do something else 
echo "we had $N errors" 
exit N 

в качестве альтернативы, если вы хотите, чтобы терпеть неудачу быстро

#!/bin/bash 
ls /non/existent/dir || { 
    echo "can't ls /non/existent/dir" 
    exit 1 
} 

Для каждой оболочки CMD вас может видеть код выхода с ...

echo $? 
+0

Хорошее решение, но ... У меня была эта проблема прямо сейчас, и даже если у меня есть пустой скрипт с просто shebang и 'exit 1', он все равно преуспевает ... Имея агента на этом ПК, я вижу, что он запускается сценарий в CYGWIN, как и ожидалось, но может быть, что этот объезд где-то проглатывает код выхода? – helmesjo

Смежные вопросы