русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Функции


Дата добавления: 2015-07-09; просмотров: 503; Нарушение авторских прав


Написание хорошо структурированных программ требует возможности соз- дания подпрограмм. В оболочке Bash это реализуется с помощью функций, представляющих собой именованные блоки кода (пример 10.42). При опре- делении функции в оболочке (даже просто в командной строке) ее можно вызвать по имени.

 

Пример 10.42. Синтаксис функции

 

function имя()

{

команды

}

 

Код функции описывают в начале сценария до первого вызова функции. Для вызова функции достаточно просто указать ее имя.

Для демонстрации использования функций оболочки модифицируем про- грамму if.sh (см. примеры 10.27, 10.29, 10.31). Измененный код сценария if.sh представлен в примере 10.43, а результат его работы — в примере 10.44.

 

Пример 10.43. Использование функций

 

#!/bin/bash function err_msg()



{

cat <<- ERR

Недостаточно аргументов. Использование: if.sh file

Аргумент file должен быть обычным файлом.

ERR

}


 

if [ $# -ne 1 ] then

err_msg exit 1

elif [ ! -f $1 ] then


 

 

fi

ls -l $1


echo -n 'Тип файла ' file $1

exit 1


 

Пример 10.44. Проверка работы функции в Bash

 

$ ./if.sh

Недостаточно аргументов. Использование: if.sh file

Аргумент file должен быть обычным файлом.

$ ./if.sh /etc/passwd

-rw-r--r-- 1 root root 2033 Oct 19 23:24 /etc/passwd

 

Для передачи аргументов в функцию их указывают после имени функции, разделяя пробелами. В теле функции обращение к переданным аргументам производится с помощью позиционных параметров.

Модификация if.sh, с передачей аргументов в функцию, показана в приме- ре 10.45, а результат работы — в примере 10.46.

 

Пример 10.45. Передача значений в функции

 

#!/bin/bash function err_msg()



{

echo "Ошибка: $1" cat <<- ERR

Недостаточно аргументов. Использование: if.sh file

Аргумент file должен быть обычным файлом.

ERR

}


 

if [ $# -ne 1 ] then

err_msg '001'

exit 1 elif [ ! -f $1 ] then


 

 

fi

ls -l $1


echo -n 'Тип файла ' file $1

exit 1


 

Здесь в функцию передается строка — код ошибки. В теле функции этот код считывается из позиционного параметра.

 

Пример 10.46. Проверка передачи аргументов в функции

 

$ ./if.sh

Ошибка: 001

Недостаточно аргументов. Использование: if.sh file

Аргумент file должен быть обычным файлом.

 

Функции часто описывают в отдельных файлах, считывая в сценариях со- держимое этих файлов с помощью inline-подстановки.

 



<== предыдущая лекция | следующая лекция ==>
ЗАДАНИЯ | Физическая структура накопителя на жестких магнитных дисках


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.155 сек.