Архив метки: bash

Конвертация IP в число и обратно в Bash

Внутри shell-скриптов иногда нужно оперировать IP адресами. Например, необходимо вычислить, входит ли адрес 123.4.56.7 в диапазон адресов 123.0.0.1-123.5.255.255. Проще всего это сделать, переведя адрес в целое число и сравнив его с граничными значениями. Для этих целей подойдут две функции в BASH.
Читать далее

Shellshock: уязвимость во всех версиях Bash

24 сентября 2014 года были опубликованы данные об уязвимости в Unix Bash shell. За уязвимостью (и её продолжением закреплены идентификаторы CVE-2014-6271 и CVE-2014-7169. Подверженными оказались практически все версии Bash, начиная с 1.14. Производители наиболее популярных дистрибутивов незамедлительно отреагировали на проблему и уже выпустили обновления для Bash.

Проверка системы

Читать далее

Операции сравнения в bash

При создании shell-скриптов часто возникает необходимость проверки каких-то условий. Самым простым оператором для этого является if / then / else. Конструкцию if / then всегда необходимо заканчивать словом fi.

if [ выражение ]; then
    оператор1;
    else
        оператор2;
fi

Принцип работы его заключается в следующем: проверяется условие в if, если выражение условия возвращает код завершения 0 (истинно), то выполняется оператор после then (оператор1); если код завершения отличен от нуля (ложно), то выполняется альтернативное действие после else (оператор2) или выход из условия fi в случае отсутствия необязательного условия else.
Условия могут быть вложенными друг в друга; условия могут состоять из нескольких выражений, объединенных логическими операциями И / ИЛИ. При написании условий рекомендуется использовать двойные квадратные кавычки [[,]] для обрамления выражений. В противном случае возникает ошибка интерпретатора, требующая экранирования знаков вроде «<» с помощью специального символа «\».

Читать далее