Все внутри $((...))
рассматривается как арифметическое c выражение. Вы можете использовать расширение параметра внутри выражения arithmeti c, но пустая строка интерпретируется как переменная, значение которой (целое) используется. Вы можете написать
if [ $(( i % 2 )) -eq 1 ]
, чтобы проверить, является ли i
нечетным. Вы также можете проверить равенство внутри выражения, так как $(( x == y ))
оценивается как 1, если x == y
и 0 в противном случае, но вам все равно придется сравнить это значение с чем-то.
In bash
, вы можете использовать арифметическую c команду , которая имеет статус выхода 0, если результирующее значение не равно нулю, и 1 в противном случае. Это позволяет вам написать
if (( i % 2 == 1 )); then