scripting

Обработка сигналов в sh

Сигналы – один из способов взаимодействия между процессами. Отправив определенный сигнал, можно приостановить или возобновить работы приложения, завершить его или сделать с ним еще что-нибудь. Сигнал определяется номером, которому соответствие имя. Посмотрите man signal или наберите kill -l чтобы получить список сигналов.
В скриптах обработка сигналов может быть крайне полезна.
› Continue reading

Tags: ,

Четверг, Декабрь 2nd, 2010 Советы Нет комментариев

sed tips and tricks

Sed – прекрасное средство редактирования текста с отвратительной документацией. В скриптах он часто бывает незаменим, но чтобы выполнить что-то непривычное приходится долго искать интернете нужный пример или долго экспериментировать с разными вариантами. Очень неудобно!
Так что сделаю сделаю себе памятку!
› Continue reading

Tags:

Среда, Ноябрь 24th, 2010 Новости Нет комментариев

значение по умолчанию для переменной shell

Иногда нужно выставить значение по умолчанию для переменной, которую может указать/не указать пользователь в качестве аргумента при запуске. Для этого можно использовать вот такую конструкцию:

VALUE=''
VALUE_DEFAULT='default'

if [ -z $VALUE ]; then
  VALUE="$VALUE_DEFAULT"
fi

echo $VALUE

Из явных плюсов – ее читабельность, как всегда в ущерб краткости. Пробуем написать тоже самое, но короче:

VALUE='1'
VALUE_DEFAULT='default'

[ -z $VALUE ] && VALUE="$VALUE_DEFAULT"

echo $VALUE

Получилось, но теперь понять конструкцию чуть сложнее. Пробуем сделать еще более короткий вариант:

VALUE=''
VALUE_DEFAULT='default'

VALUE=${VALUE:-$VALUE_DEFAULT}

echo $VALUE

Самый короткий вариант, но понятный только тем, кто внимательно прочитал man sh.

Tags: , ,

Среда, Ноябрь 3rd, 2010 Советы Нет комментариев

Вывод сообщения в stderr из shell скрипта

Очень полезная вещь – перенаправление потоков вывода. С ее помощью в shell скриптах можно сделать многое, в том числе и вывод сообщений в stderr. Пример простого скрипта ниже:

#/bin/sh

DEBUG=0

print_debug()
{
  if [ "x$DEBUG" != "x0" ]; then
    echo $* >&2
  fi
}

print_debug hello world

Переменная DEBUG, если не равно 0, указывает, что нужно выводить сообщения в функции print_debug. Обычное echo выводи строку со всеми аргументами функции (переменная $*) в stdout, которые перенаправляется в stderr ( >&2 ).

Tags: ,

Вторник, Июнь 1st, 2010 Советы Нет комментариев

Правильный и красивый способ добавлять модули ядра в автозагрузку в CentOS 5.X

Наткнулся на блог с красивым и правильным методом добавления модулей в автозагрузку centos 5.x.
› Continue reading

Tags: ,

Вторник, Апрель 20th, 2010 Статьи Нет комментариев

jot и seq или как упростить себе работы с циклами

jot (FreeBSD)
seq (Linux)
две простые утилиты для работы с последовательностями, прекрасная альтернатива замены for в shell скриптах.
› Continue reading

Tags: ,

Понедельник, Март 1st, 2010 Советы Нет комментариев
Tinkerbell Personal Checks |Garden Planters | Jewellery For Women | Best Dog Foods | Budget Wedding Gowns | Shop For Jewellery | Vintage Jewellery| Diamante Jewellery | Car Finance Credit | DoorStep Loans