В скрипте Bash, как я могу выйти из всего скрипта, если возникает определенное условие?

Хороший способ вставить часто используемую строку (например, имя приложения) в xml без использования кода Java: source

    
    
      
    ]>


    &appname;
    The &appname; app was created by &author;

UPDATE:

Вы даже можете определить свою сущность глобально, например:

res / raw / entities.ent:



res / values ​​/ string .xml:



    %ents;   
]>


    &appname;
    The &appname; app was created by &author;

594
задан Peter Mortensen 11 April 2017 в 23:42
поделиться

2 ответа

Попробуйте этот оператор:

exit 1

Замените 1 соответствующими кодами ошибок. См. Также Коды выхода со специальными значениями .

722
ответ дан 22 November 2019 в 21:51
поделиться

Используйте set -e

#!/bin/bash

set -e

/bin/command-that-fails
/bin/command-that-fails2

Скрипт завершится после первой строки что терпит неудачу (возвращает ненулевой код выхода). В этом случае command-that-fails2 не будет запущен.

Если вы должны были проверить статус возврата каждой отдельной команды, ваш сценарий будет выглядеть так:

#!/bin/bash

# I'm assuming you're using make

cd /project-dir
make
if [[ $? -ne 0 ]] ; then
    exit 1
fi

cd /project-dir2
make
if [[ $? -ne 0 ]] ; then
    exit 1
fi

С set -e он будет выглядеть так:

#!/bin/bash

set -e

cd /project-dir
make

cd /project-dir2
make

Любая неудачная команда приведет к сбою всего сценария и возвратит статус выхода, который вы можете проверить с помощью $? . Если ваш сценарий очень длинный или вы создаете много чего, он станет довольно уродливым, если вы повсюду добавите проверки статуса возврата.

659
ответ дан 22 November 2019 в 21:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: