doc:sysadmin:shell_scripts
Различия
Показаны различия между двумя версиями страницы.
| Следующая версия | Предыдущая версия | ||
| doc:sysadmin:shell_scripts [d.m.Y H:i] – создано dbehterev | doc:sysadmin:shell_scripts [d.m.Y H:i] (текущий) – Статус обсуждения изменён dbehterev | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| + | ====== Shell (sh) и Bourn Again Shell (bash) примеры скриптов ====== | ||
| + | ===== Скрипт sh #1 - проверка условий ===== | ||
| + | |||
| + | Предположим, | ||
| + | < | ||
| + | #!/bin/sh | ||
| + | |||
| + | result=`/ | ||
| + | |||
| + | / | ||
| + | |||
| + | # 0 - yes, we have equality, 1 - no | ||
| + | if [ $? -eq 0 ] # we have $result = "" | ||
| + | then | ||
| + | # some actions | ||
| + | fi | ||
| + | </ | ||
| + | Сначала мы перенаправляем вывод route на вход команды awk, которая проверяет соответствие строк регулярному выражению /^0/ (все, что начинается с 0 как раз и будет записью маршрута по-умолчанию) и выводит всю совпавшую строку (разделители полей в awk по-умолчанию пробелы). Т.е. если у нас есть в системе маршрут по-умолчанию, | ||
| + | Далее мы проверяем переменную окружения $? на предмет равенства 0. Предопределенная переменная окружения $? хранит результат выполнения последней команды, | ||
| + | |||
| + | Предположим, | ||
| + | < | ||
| + | ping_check=`/ | ||
| + | result=`echo $ping_check | / | ||
| + | / | ||
| + | # if we have string that contain "0 received" | ||
| + | if [ $? -eq 1 ] # we have $result = "" | ||
| + | # some actions | ||
| + | fi | ||
| + | </ | ||
| + | Мы выполняем отправку 1 эхо-пакета и дальше проверяем, | ||
| + | |||
| + | TAG: {{tag> sysadmin shell_scripts}} | ||
| + | |||
| + | ~~DISCUSSION: | ||
