<Попередній | зміст | Наступна>
(( )) – призначений для цілих чисел
На додаток до [[]] складена команда, бити також надає (( )) складена команда, яка корисна для роботи з цілими числами. Він підтримує повний набір арифметичних оцінок, тему, яку ми повністю розглянемо в розділі 34.
(( )) використовується для виконання тести арифметичної істинності. Перевірка арифметичної істинності приводить до істини, якщо результат арифметичної оцінки відмінний від нуля.
[me@linuxbox ~]$ якщо ((1)); потім луна «Це правда.»; fi
Це правда.
[me@linuxbox ~]$ якщо ((0)); потім луна «Це правда.»; fi
[me@linuxbox ~]$
[me@linuxbox ~]$ якщо ((1)); потім луна «Це правда.»; fi
Це правда.
[me@linuxbox ~]$ якщо ((0)); потім луна «Це правда.»; fi
[me@linuxbox ~]$
використання (( )), ми можемо трохи спростити тестове ціле число2 такий сценарій:
#! / бін / баш
# test-integer2a: оцінити значення цілого числа.
INT=-5
якщо [[ "$INT" =~ ^-?[0-9]+$ ]]; тоді якщо ((INT == 0)); тоді
echo "INT дорівнює нулю."
ще
if ((INT < 0)); тоді
echo "INT негативний."
ще
echo "INT позитивний."
fi
if ((((INT % 2)) == 0)); тоді
echo "INT парне".
ще
echo "INT непарний."
fi
#! / бін / баш
# test-integer2a: оцінити значення цілого числа.
INT=-5
якщо [[ "$INT" =~ ^-?[0-9]+$ ]]; тоді якщо ((INT == 0)); тоді
echo "INT дорівнює нулю."
ще
if ((INT < 0)); тоді
echo "INT негативний."
ще
echo "INT позитивний."
fi
if ((((INT % 2)) == 0)); тоді
echo "INT парне".
ще
echo "INT непарний."
fi
echo "INT не є цілим числом." >&2 вихід 1
fi
echo "INT не є цілим числом." >&2 вихід 1
fi
Зверніть увагу на те, що ми використовуємо знаки «менше ніж» і «більше» і це == використовується для перевірки еквівалентності. Це більш природний синтаксис для роботи з цілими числами. Зауважте також, що через складену команду (( )) є частиною синтаксису оболонки, а не звичайною командою, і вона має справу тільки з цілими числами, вона здатна розпізнавати змінні за іменами і не потребує розширення. Ми обговоримо (( )) і відповідне арифметичне розширення далі в розділі 34.