Не выход из сценария оболочки

Я пытаюсь остановить обработку сценария оболочки с условием IF.

output7=${output7##*[[:space:]]}

if [[ $output4 -gt 0 && $output5 -gt 0 && $output6 -gt 0 && $output7 -gt 0 ]]
then echo 'Success'
else echo 'Failure'|| exit 0
fi

echo 'Process Completed'

Он печатает следующее сообщение, но также выполняется следующая инструкция. Выход:

Failure
Process Completed

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

1 ответ

Решение

Проблема в том, что вы говорите, что "если echo 'Failure' не получается, тогда exit 0"Это не то, что вы хотите. Вы будете хотеть

echo 'Failure'
exit 1

вместо. Идиоматический стиль Bash для всего раздела будет:

if [[ $output4 -gt 0 ]] && [[ $output5 -gt 0 ]] && [[ $output6 -gt 0 ]] && [[ $output7 -gt 0 ]]
then
    echo 'Success'
else
    echo 'Failure'
    exit 1
fi
Другие вопросы по тегам