Я пытаюсь обработать выпуск программного обеспечения на основе номера версии, который следует взять здесь.Оцените, что больше числа
<!-- language: lang-sh -->
if [ `expr ${rel_choice}\<2.24` -eq 0 ]; then
rel_223
elif [ `expr ${rel_choice}\=2.25` -eq 0 ]; then
rel_225
elif [ `expr ${rel_choice}\>2.25` -eq 0 ]; then
rel_226
else
lp_error "Could not evaluate release number"
fi
Проблема у меня есть, независимо от того, какой номер я выбираю, программа запускает только функцию rel_223. Вот вывод отладки.
Enter stream required for BSB?: 2.25
The Client is BSB
The Release number is 2.25
The build directory is ACEV225
+ expr 2.25<2.24
+ [ 2.25<2.24 -eq 0 ]
+ echo rel_223
rel_223
+ read
Вы проверяли фактическое значение '$ rel_choice'? Вы пробовали команды 'expr' автономно в оболочке? –
Да, $ rel_choice - эта часть отладки: номер версии 2.25 –
Почему вы ожидаете 0 в результате вашего первого 'expr'? Прямо сейчас у меня нет «expr» для тестирования, но в онлайн-справке говорится: «Статус выхода равен 0, если EXPRESSION не является ни нулевым, ни 0, 1, если EXPRESSION имеет значение null или 0». Может ли быть, что 2.25 <2.2.4 разрешает что-то еще, чем 0, и 'expr'returns 0? –