LINUX.ORG.RU

Проблема с bash скриптом

 


0

2

есть такая упрощенная функция:

myFunction()
{
        blabla || anotherFunction && return 0
        return 1
}

мне надо, чтобы при удачном выполнении функции blabla возвращался 1, а при неудачном выполнялась другая функция и возвращался 0. а у меня в любом случае возвращается 0

сделал так:

myFunction()
{
        blabla || (anotherFunction && return 0)
        return 1
}

но в этом варанте всегда возвращается 1

в обоих случаях anotherFunction выполняется при неудачном выполнении blabla, проблема с return. как сделать, чтобы было ок?

P.S.:
1. if'ами не вариант, надо именно такой конструкцией.
2. return 1 обязательно должен быть в конце функции, т.к. подобных конструкций будет много в теле функции. если все конструкции успешны, то будет возвращаться 1

★★★

Последнее исправление: zevilz (всего исправлений: 1)

1. if'ами не вариант, надо именно такой конструкцией.

Почему?

P. S.

myFunction()
{
        blabla || { anotherFunction ; return 0 ; }
        return 1
}

Kroz ★★★★★
()

еще вариант:

! blabla && anotherFunction && return 0

anonymous
()
Ответ на: комментарий от zevilz

мне надо, чтобы при удачном выполнении функции blabla возвращался 1,

Нут так сделать как описано: blabla && return 1

vodz ★★★★★
()
Последнее исправление: vodz (всего исправлений: 1)

Ты же в курсе, что 0 это «все хорошо», а 1 - это"ошибка"?

legolegs ★★★★★
()
myFunction()
{
        if blabla; then
              return 1
        else
              anotherFunction
              return 0
        fi
}
teod0r ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.