#bash
#bash
Вопрос:
вот чего я пытаюсь достичь:
function f1() {
return 0
}
function f2() {
return 0
}
if [[ f1 amp;amp; f2 ]]; then
echo "success"
else
echo "fail"
fi
Ответ №1:
Вы не используете [[
(or [
) при выполнении команды и проверке результирующего кода.
if f1 amp;amp; f2 ; then
echo "success"
else
echo "fail"
fi
Комментарии:
1. Запомнить
return 0
означаетtrue
, потому что это основано на кодах выхода, а не на булевой логике.
Ответ №2:
ДА. Вы можете сделать это, проверив возврат с помощью echo (хотя и не строгий возврат):
if [[ "$(f1)" == "whatever" ]]
работает
Смотрите эту страницу для получения дополнительной информации о возвращаемых функциях. В нем также есть пара хороших комментариев, в которых конкретно говорится о операторах if.
http://www.linuxjournal.com/content/return-values-bash-functions
Комментарии:
1. Вы не можете использовать
$(...)
для получения возвращаемых значений.