В bash можно ли использовать вызов функции как условие в выражении if?
вот что я пытаюсь достичь:
function f1() {
return 0
}
function f2() {
return 0
}
if [[ f1 && f2 ]]; then
echo "success"
else
echo "fail"
fi
Ответ 1
При запуске команды и проверке кода результата вы не используете [[ (или [).
if f1 && f2 ; then
echo "success"
else
echo "fail"
fi
Ответ 2
Да. Вы можете сделать это, проверив против возврата с помощью эха (хотя и не строгого возврата):
if [[ "$(f1)" == "whatever" ]] работает
Более подробную информацию о возвращаемых значениях функций см. на этой странице. В нем также есть несколько хороших комментариев, в которых конкретно говорится о заявлениях.