Оператор IF для диапазона номеров (standard_in) 1: синтаксическая ошибка

Я пытаюсь получить оператор if для работы с bc определить, находится ли число в текстовом файле внутри числового диапазона или за его пределами. У меня есть условия (echoes) что я хотел бы вызвать, когда критерии выполнены (или не выполнены).

файл climo.diff:

17.3

Код Bash:

check=`cat climo.diff`

if (( $(bc <<< "${check} < -7.0" || "${check} > 7.0") ));
then
echo "CAUTION: Outside acceptable range."
else
echo "Within acceptable range."
fi

Я продолжаю получать следующую ошибку:

(standard_in) 1: syntax error

1 ответ

Решение

|| нужно идти внутри кавычек, так что это считается частью ввода в bc, а не оператор оболочки, разделяющий bc команда с неверным именем команды.

if (( $(bc <<< "${check} < -7.0 || ${check} > 7.0") ));

затем

Другие вопросы по тегам