игнорирование кода завершения команды в Linux - PullRequest
8 голосов
/ 24 февраля 2012

У меня есть консольная команда Postgres createdb appname_production_master, которая возвращает код завершения ошибки, если база данных с таким именем уже существует.

Можно ли заставить эту команду не возвращать код выхода?

Ответы [ 2 ]

21 голосов
/ 24 февраля 2012

Просто игнорируйте код выхода, например, вот так.

createdb appname_production_master || true
1 голос
/ 24 февраля 2012

Команды Unix всегда возвращают коды выхода, но вам не нужно отвечать на код выхода.

При запуске команды $? устанавливается на код завершения процесса. Поскольку это происходит для каждой команды, простой запуск другой команды после первой изменится $?.

Например:

createdb appname_production_master # returns 1, a failure code
# $? is 1
/bin/true # always returns 0, success
# $? is 0

Вот еще один пример:

/bin/false # returns false, I assume usually 1
echo $? # outputs 1
echo $? # outputs 0, last echo command succeeded
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...