Прошло некоторое время с тех пор, как я написал сценарий. Я никогда не был хорош, чтобы начать с ..BASH - Функция возвращает неправильное значение
Я работаю над скриптом, который будет проверять соединение DB оракула.
testDB() {
[[ $(tnsping $tnsName | grep -c WRONG)==1 ]] && return 1
return 0
}
testDB
status="${?}"
echo "Status value= " $status
Ожидается значение 0 из моего эха, но каким-то образом мой статус показывает 1 в моем эхом.
Что я здесь делаю неправильно?
EDIT2:
Мой исходный код был:
testDB() {
[[ $(tnsping $tnsName | grep -c OK) -eq 1 ]] && return 1
return 0
}
мой $ TNSNAME содержит правильное значение и подсчет Grep будет 1, но мои функции возвращает 0.
Вашей интенция с '[[$ (tnsping $ TNSNAME | Grep -c неверного) == 1]] && вернуться 1' не очень ясно. – sjsam
В основном, я надеюсь, что grep -c ОК от tnsping. счет будет равен 1, если tnsping будет успешным. TNSPING не должен содержать какое-либо слово WRONG в результате .. поэтому счет будет 0. – Kyle
@sjsam. Непосредственной проблемой, с которой столкнулся OP, был отсутствие пробелов вокруг знаков равенства, не так ли? Ваше редактирование превращает его в другой вопрос; редактирование кода в вопросах всегда проблематично - проблема остается воспроизводимой после вашего изменения? – tripleee