Я пытаюсь оценить элементы в массиве с помощью float, используя в качестве примера следующую команду:
sorted=(0 0.0223611 0.977639)
if [[ $(echo "${sorted[-2]} > 0" | bc) ]];then echo 'yes';else echo 'no';fi
, который даст правильный ответ «да»; однако, когда я изменяю «0» на «0,8»,
if [[ $(echo "${sorted[-2]} > 0.8" | bc) ]];then echo 'yes';else echo 'no';fi
он по-прежнему дает тот же ответ «да», что неверно.
После этого, если я изменю командную строку на:
if [[ $(echo ${sorted[-2]} > 0.8 | bc) ]];then echo 'yes';else echo 'no';fi
ответ «нет», и это правильно. Но если я вернусь к 0, ответ все равно будет «нет».
Так что каждый раз, когда я добавляю или удаляю двойную кавычку, первый ответ правильный. Но это не изменится независимо от того, как поплавок изменится впоследствии. Я полностью потерян, что здесь происходит. Пожалуйста, помогите мне. Спасибо!