Онлайн-рабочие станции OnWorks Linux и Windows

Логотип

Бесплатный хостинг в Интернете для рабочих станций

<Предыдущая | Содержание: | Следующая>

Держите скрипты в рабочем состоянии

При разработке нашей программы полезно поддерживать ее в рабочем состоянии. Делая это и часто тестируя, мы можем обнаруживать ошибки на ранних этапах процесса разработки. Это значительно упростит отладку. Например, если мы запускаем программу, вносим небольшое изменение, затем снова запускаем программу и обнаруживаем проблему, весьма вероятно, что самое последнее изменение является источником проблемы. Добавляя пустые функции, называемые заглушки Говоря языком программистов, мы можем проверить логическую последовательность нашей программы на ранней стадии. При создании заглушки рекомендуется включить что-то, что обеспечивает обратную связь с программистом, которая показывает, что выполняется логический поток. Если мы посмотрим на вывод нашего скрипта сейчас:



[я @ linuxbox ~] $ sys_info_page

Системный информационный отчет для twin2

[я @ linuxbox ~] $ sys_info_page

Системный информационный отчет для twin2


Отчет о системной информации для linuxbox

Создано 03 19:2009:04 EDT, мной


Отчет о системной информации для linuxbox

Создано 03 19:2009:04 EDT, мной



мы видим, что в нашем выводе после метки времени есть пустые строки, но мы не можем быть уверены в причине. Если мы изменим функции, чтобы включить обратную связь:



отчет_время работы () {

echo "Выполнена функция report_uptime."

возвращают

}


report_disk_space () {

echo "Функция report_disk_space выполнена."

возвращают

}


отчет_домашнее_пространство () {

echo "Функция report_home_space выполнена."

возвращают

}

отчет_время работы () {

echo "Выполнена функция report_uptime."

возвращают

}


report_disk_space () {

echo "Функция report_disk_space выполнена."

возвращают

}


отчет_домашнее_пространство () {

echo "Функция report_home_space выполнена."

возвращают

}


и снова запустим скрипт:



[я @ linuxbox ~] $ sys_info_page

Отчет о системной информации для linuxbox

Отчет о системной информации для linuxbox

Сгенерировано мной 03 20:2009:05 EDT Выполнена функция report_uptime.

Выполнена функция report_disk_space. Выполнена функция report_home_space.

[я @ linuxbox ~] $ sys_info_page

Отчет о системной информации для linuxbox

Отчет о системной информации для linuxbox

Сгенерировано мной 03 20:2009:05 EDT Выполнена функция report_uptime.

Выполнена функция report_disk_space. Выполнена функция report_home_space.

Держите скрипты в рабочем состоянии


Теперь мы видим, что на самом деле три наши функции выполняются.

Когда наша функциональная структура установлена ​​и работает, пришло время конкретизировать часть кода функции. Во-первых, report_uptime функция:


отчет_время работы () {

кошка << - _EOF_

Время работы системы

$ (время безотказной работы)

_EOF_

возвращают

}

отчет_время работы () {

кошка << - _EOF_

Время работы системы

$ (время безотказной работы)

_EOF_

возвращают

}


Это довольно просто. Мы используем здесь документ для вывода заголовка раздела и вывода Провел на сайте команда, окруженная теги, чтобы сохранить форматирование команды. В report_disk_space функция аналогична:


report_disk_space () {

кошка << - _EOF_

Использование дискового пространства

$ (df -h)

_EOF_

возвращают

}

report_disk_space () {

кошка << - _EOF_

Использование дискового пространства

$ (df -h)

_EOF_

возвращают

}


Эта функция использует df -h команда для определения объема дискового пространства. Наконец, мы построим report_home_space функция:


отчет_домашнее_пространство () {

кошка << - _EOF_

Использование домашнего пространства

$ (du -sh / home / *)

_EOF_

возвращают

}

отчет_домашнее_пространство () {

кошка << - _EOF_

Использование домашнего пространства

$ (du -sh / home / *)

_EOF_

возвращают

}


Мы используем du команда с варианты для выполнения этой задачи. Однако это не полное решение проблемы. Хотя он будет работать в некоторых системах (например, Ubuntu), он не будет работать в других. Причина в том, что многие системы устанавливают разрешения для домашних каталогов, чтобы они не были доступны для чтения всем, что является разумной мерой безопасности. В этих системах report_home_space функция, как написано, будет


изображение

работает только в том случае, если наш скрипт запускается с привилегиями суперпользователя. Лучшим решением было бы, чтобы сценарий настраивал свое поведение в соответствии с привилегиями пользователя. Мы рассмотрим это в следующей главе.


Функции оболочки в вашем файле .bashrc

Функции оболочки отлично заменяют псевдонимы и фактически являются предпочтительным методом создания небольших команд для личного использования. Псевдонимы очень ограничены по типу поддерживаемых ими команд и функций оболочки, тогда как функции оболочки допускают все, что может быть написано сценарием. Например, если нам понравился report_disk_space функцию оболочки, которую мы разработали для нашего скрипта, мы могли бы создать аналогичную функцию с именем ds за наших .bashrc файл:

дс () {

echo «Использование дискового пространства для $ HOSTNAME» df -h

}


Лучшие облачные вычисления для ОС в OnWorks: