#bash #boolean #return-value
#bash #логическое #возвращаемое значение
Вопрос:
Названия «должно» достаточно.
Я сам опубликую решение в интересах других, поскольку в то время я не мог найти простое, универсальное.
Комментарии:
1. «Более конкретно», потому что речь идет о C , а не о Bash.
2. @StefanvandenAkker — спасибо, что заметили это! Я удалю ссылку. Опубликовано в спешке.
Ответ №1:
if func1 "$arg1" amp;amp; func2 "$arg2"; then
echo 'both succeeded'
fi
if func1 "$arg1" || func2 "$arg2"; then
echo 'at least one succeeded'
fi
if ! func1 "$arg1" amp;amp; ! func2 "$arg2"; then
echo 'both failed'
fi
if ! func1 "$arg1" || ! func2 "$arg2"; then
echo 'at least one failed'
fi
Ключевыми моментами являются:
- Bash считает возвращаемое значение функции
0
среднимtrue
и1
или другое целое значение среднимfalse
- Необходимо использовать логические операторы boolean
amp;amp;
и||
- Также позаботьтесь о том, чтобы оставить пробел между
!
и функцией при тестировании на сбой
Комментарии:
1. итак, вы нашли ответ на свой вопрос, аргументы следует заключать в кавычки, чтобы избежать разделения, и вторая функция может не вызываться (после
amp;amp;
того, как первое условие равно false или||
когда первое условие истинно).2. Хороший момент, спасибо @NahuelFouilleul — добавлены кавычки.