Архив рубрики: BASH scripts

Bash is a Unix shell and command language written by Brian Fox for the GNU Project as a free software replacement for the Bourne shell.

BASH: функция getopts – используем опции в скриптах

26 ноября 2013
 

 Имеется две схожие программы – getopt и getopts. Основные различия – getopts является встроенной в bash командой, тогда как getopt – вызываемая внешняя (/usr/bin/getopt): У getopt есть несколько недостатков, основная – getopts внесена в стандарт POSIX для sh, тогда как getopt может быть вообще не установлена в системе. Кроме того, это сравнительная сложность, которая в… Читать далее »

BASH: test – too many arguments

23 ноября 2013
 

 В скрипте выполняется стандартная проверка – не является ли переменная пустой: if [ $VERS ] then echo “$VERS” sort -n -t . -k 1 else echo “Can’t get versions list!” fi Но при запуске – bash сообщает об ошибке: $ ./version.sh ./version.sh: line 11: [: too many arguments Can’t get versions list!

BASH: sort по заданному полю

22 ноября 2013
 

 Небольшая заметка о возможностях команды sort. Имеется небольшой скрипт, который выводит список последних доступных версий программы: $ ./version.sh 4.4.0.29 4.4.0.30 4.4.0.31 4.4.0.4 4.4.0.8

BASH: использование команды trap для перехвата сигналов прерывания процесса

20 ноября 2013
 

 Про команду kill и сигналы управления процессами (SIGKILL, SIGTERM и другие) можно прочитать в статье Linux&FreeBSD: команды kill, nohup — сигналы и управление процессами. У bash имеется встроенная команда trap, которая может перехватывать такие команды и выполнять какие-либо действия, заданные ей. Синтаксис команды: trap command signals command – что именно необходимо выполнить при перехвате сигнала;… Читать далее »

BASH: скрипт проверки соединения

18 ноября 2013
 

 Скрипт выполняет подключение к удалённому узлу и, в случае неудачной попытки, отправляет сообщение на почту. Используются переменные: CON – описывается само подключение – узел, порт; FILE – временный файл, в который будет записывать лог процесса подключения; SUBJ – тема письма, которое будет отправляться; TEXT – текст письма 🙂 STR1 – переменная, которая получает требуемое слово… Читать далее »

BASH: скрипт уведомлений на e-mail о неудачных попытках авторизации

17 ноября 2013
 

 Выполняется поиск по файлу лога веб-сайта, ищется одно из двух совпадений: вхождение строки “authentication failure“; вхождение строки “user.*not found“. Срабатывает он так: [Sun Nov 17 17:30:05 2013] [error] [client ***.37.***.**] user user: authentication failure for “/wp-login.php”: Password Mismatch [Sun Nov 17 17:29:52 2013] [error] [client ***.37.***.**] user sdcas not found: /wp-login.php [Sun Nov 17 17:35:19… Читать далее »

BASH: описание циклов for, while, until и примеры использования

15 ноября 2013
 

 Краткое описание разницы в типах циклов: for – будет выполнять действие до тех пор, пока есть объекты для выполнения (например – чтение потока из stdin, файла или функции); while – выполняет действие до тех пор, пока условие является истинным; until – будет выполняться до тех пор, пока условие не станет истинным, т.е. пока оно false.… Читать далее »

BASH: использование массивов

13 ноября 2013
 

  Массив (в некоторых языках программирования также таблица, ряд) — набор однотипных компонентов (элементов), расположенных в памяти непосредственно друг за другом, доступ к которым осуществляется по индексу (индексам). В отличие от списка, массив является структурой с произвольным доступом (Материал из Википедии). В BASH имеется два вида массивов – Индексированные массивы (indexed arrays) и Ассоциативные массивы (Associative… Читать далее »

BASH: использование функций, примеры

9 ноября 2013
 

 По сути функция в bash является обычной переменной, но с более широкими  возможностями. Основное применение – в тех случаях, когда один и тот же код необходимо использовать несколько раз и/или в разных связанных скриптах. Объявление и вызов функции Объявляется функция так: function function_name () { function body } Или: function one { echo “One” }… Читать далее »