Ответ 1
Если это был код выхода, а не результат, вы могли бы просто использовать
if func arg; then ...
Если вы не можете заставить функцию вернуть правильный код выхода (с return N
), и вам нужно использовать строковые результаты, используйте ответ @Alex Gitelman.
$ help if
:
if: if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else COMMANDS; ] fi
Выполнять команды на основе условных.
Выполняется список
if COMMANDS
. Если его статус выхода равен нулю, Выполняется списокthen COMMANDS
. В противном случае каждыйelif COMMANDS
список выполняется в свою очередь, и если его статус выхода равен нулю, соответствующий Выполняется списокthen COMMANDS
, и команда if завершается. В противном случае, при запуске выполняется список `else COMMANDS '. Статус выхода целая конструкция - это статус выхода последней выполненной команды или нуль если никакое условие не проверено верно.Статус выхода: Возвращает статус последней выполненной команды.