Я начинаю с bash и обнаружил следующее:
if test $first -lt $second
then
echo $first is lower than $second
else
if test $first -gt $second
then
echo $first is higher than $second
else
echo $first and $second are equals
fi
fi
Для чтения сценария и его выполнения я знаю, что он делает, но не то, для чего нужны -lt и -gt.
Может кто-нибудь сказать мне, как называется этот «инструмент» и что они (-lt и -gt) делают? Благодарность!
echo
утверждения в коде отвечают на ваш вопрос.Ответы:
Это сокращение от
less than
иgreater than
. Используется для сравнения целых чисел в bash. Вы можете узнать больше, набравman test
:источник
Вы можете найти определение
-lt
и-gt
в документации поtest
команде (man test
), или в документации по bash, посколькуtest
это встроенная команда в bash (как и в большинстве других оболочек).-lt
и-gt
являются числовыми сравнениями (меньше чем [и не равно], больше чем [и не равно]). Существуют также операторы меньше / больше или равны-le
и-ge
, и операторы равны и не равны-eq
и-ne
. Это числовые операторы, поэтому будет ошибка, если любая из сторон не является числом и9
считается меньше10
.Причина, по которой такие имена
-lt
используются, а не обычные,<
заключается в том, что символ<
будет интерпретироваться как перенаправление. Операторы=
и!=
также существуют, но они выполняют сравнение строк:test 00 -eq 0
истинно тогдаtest 00 = 0
ложно.Некоторые оболочки, в том числе Баш, также операторы
<
и>
которые выполняют строковое сравнение лексикографическую, поэтомуtest 9 \< 10
является ложным , поскольку9
сортируется перед тем1
(обратной косой черты предотвращает характер<
от интерпретации в качестве оператора перенаправления). Эти оболочки также предлагают синтаксис двойных скобок для тестов, например[[ 9 < 10 ]]
(в отличие от[ 9 \< 10 ]
), которые не могут иметь перенаправления внутри, поэтому<
не нужно заключать в кавычки.источник
Они просто операторы.
Просто:
gt
иlt
значит> (больше чем) и <(меньше чем).Вы можете посмотреть здесь для получения дополнительной информации об операторах:
источник
Это операторы сравнения
-lt = меньше чем
-gt = больше чем
Вы можете проверить эту страницу для более подробной информации:
источник