Для работы с удалёнными машинами я давно уже пользовался утилитой dialog, позволяющей создавать человеческого вида интерфейсы в скриптах. Как это выглядит знают все, кто устанавливал FreeBSD. Кому интересно: краткое описние dialog на русском и на английском, с большими картинками.
Автоматизируя работу на своём домашнем/рабочем компьютере с GNOME я обнаружил новое, ещё более увлекательное средство для создания интерфейсов в скриптах:
Zenity (Русскоязычное руководство в GNOME Documentation Library)
Освоив этот инструмент, правильный администратор/разработчик может облегчить жизнь себе любимому, своим близким, вынужденным терпеть Linux на домашнем компьютере, сотрудникам в офисе, куда стремительно рвутся всё более удобоваримые дистрибутивы свободной ОС. Удобство скриптования в unix-системах эта программа легко подружит с удобством использования. Не берусь даже обрисовать все возможные применения.
Пример номер 1:
Пропишем себе в crontab:
*/15 0-3 * * * DISPLAY=:0.0 /usr/bin/zenity --warning --title="Пора спать" --text="Завтра на работу"
И система заботливо и настойчиво будет нас клонить ко сну каждые 15 минут с 0 до 3 ночи.
Пример номер 2:
Статус ppp соединения плюс статистика в трее от Злого Ананаса.
Пример номер 3:
Сканируем тучи документов и выполняем обработку изображений офисных документов в пару кликов. Секретарша будет на вас молится. Конечный документ А4 в 200dpi обычного вида (типа счёта с синей печатью и подписью) имеет типичный вес от 60 до 200 килобайт и формат png. Нужны установленные sane-utils и ImageMagic.
#!/bin/sh
TMP="image$$"
while true; do
scanimage \
-p \
--format tiff \
--resolution 200 \
-x 215 -y 297 \
2> ~/$TMP.tiff \
3>&1 1>&2 2>&3 \
| perl -e '$/="\r";$|=1;while(<>){s/^\D+(\d+)\D.*$/$1\n/g;print;}' \
| zenity \
--progress \
--title="Сканирование" \
--text="Сканирую изображение. Пожалуйста, подождите..."
if [ $? -eq 0 ]; then
FILE=""
while [ -z "$FILE" ]; do
FILE=`zenity \
--entry \
--title="Обработка" \
--text="Укажите имя файла для сохранения"`
done
convert $TMP.tiff -level 20%,80%,0.4 -format PNG8 -colors 8 $FILE.png
else
killall scanimage
fi
rm -f $TMP.tiff
zenity \
--question \
--title="Продолжим?" \
--text="Вы желаете продолжить сканирование? Не забудьте положить в сканер новый лист." \
|| return
done
Комментариев нет:
Отправить комментарий