ввод bash:
if [[ 167 > 10800 ]]
then
echo "I can't compare"
fi
выход bash:
I can't compare
Я думаю, вопрос довольно очевиден ...
ввод bash:
if [[ 167 > 10800 ]]
then
echo "I can't compare"
fi
выход bash:
I can't compare
Я думаю, вопрос довольно очевиден ...
Символ >
не работает для того типа сравнения, который вы хотите. Вы должны использовать -gt
:
if [[ 167 -gt 10800 ]]
then
echo "I can't compare"
fi
И если вы хотите сделать сравнение меньше, вам нужно сделать -lt
. Чтобы увидеть, какие другие опции вам нужно сделать для сравнения, посмотрите страницу test
.
Цитировать со страницы руководства bash(1)
:
При использовании с [[, операторы <и> лексикографически сортируются с использованием текущей локали.
Таким образом, 167 действительно больше, чем 10800, так как 6 - это больший символ ASCII, чем 0.
Используйте изогнутые скобки для точного сравнения чисел
if (( 167 > 10800 ))
then
echo "I can't compare"
fi
Хорошее резюме здесь: http://fvue.nl/wiki/Bash:_Numeric_comparison