Подтвердить что ты не робот

В bash можно ли использовать вызов функции как условие в выражении if?

вот что я пытаюсь достичь:

function f1() {
  return 0
}

function f2() {
  return 0
}

if [[ f1 && f2 ]]; then
  echo "success"
else
  echo "fail"
fi
4b9b3361

Ответ 1

При запуске команды и проверке кода результата вы не используете [[ (или [).

if f1 && f2 ; then
  echo "success"
else
  echo "fail"
fi

Ответ 2

Да. Вы можете сделать это, проверив против возврата с помощью эха (хотя и не строгого возврата):

if [[ "$(f1)" == "whatever" ]] работает

Более подробную информацию о возвращаемых значениях функций см. на этой странице. В нем также есть несколько хороших комментариев, в которых конкретно говорится о заявлениях.

http://www.linuxjournal.com/content/return-values-bash-functions