LINUX.ORG.RU

История изменений

Исправление vodz, (текущая версия) :

Нет никаких гарантий, что приложение выдаёт корректный exitcode.

Мдэ, вам не bash похоже надо учить, а логику вообще.

Код cmd; [ $? -ne 0 ] && err=1 и cmd || err=$? не только полностью эквивалентный, но даже лучше - в err будет последняя ошибка, а не только 1, да и синтаксическое дерево проще и быстрее. И для идиотов: при коде возврата 0 (без ошибок) выполняется '&& cmd2' как и в «[ ... ] && cmd2», где '[' и есть команда, может даже быть не встроенной в sh, а код после '||' - выполняется только при ненулевом коде возврата предыдущей команды. Обе комадны выполняются при «cmd1 ; cmd2» синтаксисе.

С вас 1 биткойн за разжевывания документации.

Исправление vodz, :

Нет никаких гарантий, что приложение выдаёт корректный exitcode.

Мдэ, вам не bash похоже надо учить, а логику вообще.

Код cmd; [ $? -ne 0 ] && err=1 и cmd || err=$? не только полностью эквивалентный, но даже лучше - в err будет последняя ошибка, а не только 1, да и синтаксической дерево проще и быстрее. И для идиотов: при коде возврата 0 (без ошибок) выполняется '&& cmd2' как и в «[ ... ] && cmd2», где '[' и есть команда, может даже быть не встроенной в sh, а код после '||' - выполняется только при ненулевом коде возврата предыдущей команды. Обе комадны выполняются при «cmd1 ; cmd2» синтаксисе.

С вас 1 биткойн за разжевывания документации.

Исправление vodz, :

Нет никаких гарантий, что приложение выдаёт корректный exitcode.

Мдэ, вам не bash похоже надо учить, а логику вообще.

Код cmd; [ $? -ne 0 ] && err=1 и cmd || err=$? не только полностью эквивалентный, но даже лучше - в err будет последняя ошибка, а не только 1. И для идиотов: при коде возврата 0 (без ошибок) выполняется '&& cmd2' как и в «[ ... ] && cmd2», где '[' и есть команда, может даже быть не встроенной в sh, а код после '||' - выполняется только при ненулевом коде возврата предыдущей команды. Обе комадны выполняются при «cmd1 ; cmd2» синтаксисе.

С вас 1 биткойн за разжевывания документации.

Исходная версия vodz, :

Нет никаких гарантий, что приложение выдаёт корректный exitcode.

Мдэ, вам не bash похоже надо учить, а логику вообще.

Код cmd; [ $? -ne 0 ] && err=1 и cmd || err=$? не только полностью эквивалентный, но даже лучше - в err будет последняя ошибка, а не только 1. И для идиотов: при коде возврата 0 (без ошибок) выполняется '&&' как и в «[ ... ] &&», а код после '||' - выполняется только при ненулевом коде возврата предыдущей команды.