Искусство программирования на языке сценариев командной оболочки



Программирование на языке сценариев командной оболочки - стр. 290


Для обхода подобных проблем можно воспользоваться утилитой whatis.

CMD=command1 # Основной вариант. PlanB=command2 # Запасной вариант.

command_test=$(whatis "$CMD" | grep 'nothing appropriate') # Если 'command1' не найдена в системе, то 'whatis' вернет #+ "command1: nothing appropriate." #==> От переводчика: Будьте внимательны! Если у вас локализованная версия whatis #==> то вывод от нее может отличаться от используемого здесь ('nothing appropriate')

if [[ -z "$command_test" ]] # Проверка наличия утилиты в системе. then $CMD option1 option2 # Запуск команды с параметрами. else # Иначе, $PlanB #+ запустить command2 (запасной вариант). fi

Команда run-parts удобна для запуска нескольких сценариев, особенно в комбинации с cron или at.

Было бы неплохо снабдить сценарий графическим интерфейстом X-Window. Для этого можно порекомендовать пакеты Xscript, Xmenu и widtools. Правда, первые два, кажется больше не поддерживаются разработчиками. Зато widtools можно получить здесь.

Пакет widtools (widget tools) требует наличия библиотеки XForms. Кроме того, необходимо слегка подправить Makefile, чтобы этот пакет можно было собрать на типичной Linux-системе. Но хуже всего то, что три из шести виджетов не работают :-(( (segfault).

Для постороения приложений с графическим интерфейсом, можно попробовать Tk, или wish (надстройка над Tcl), PerlTk (Perl с поддержкой Tk), tksh (ksh с поддержкой Tk), XForms4Perl (Perl с поддержкой XForms), Gtk-Perl (Perl с поддержкой Gtk) или PyQt (Python с поддержкой Qt).

33.8. Проблемы безопасности

Уместным будет лишний раз предупредить о соблюдении мер предосторожности при работе с незнакомыми сценариями. Сценарий может содержать червя, трояна или даже вирус. Если вы получили сценарий не из источника, которому доверяете, то никогда не запускайте его с привилегиями root и не позволяйте вставлять его в список сценариев начальной инициализации системы в /etc/rc.d, пока не убедитесь в том, что он безвреден для системы.




Содержание  Назад  Вперед