<Предыдущая | Содержание: | Следующая>
Использование позиционных параметров с функциями оболочки
Так же, как позиционные параметры используются для передачи аргументов сценариям оболочки, они также могут использоваться для передачи аргументов функциям оболочки. Для демонстрации преобразуем file_info скрипт в функцию оболочки:
файл_информация () {
# file_info: функция для отображения информации о файле if [[-e $ 1]]; тогда
echo -e "\ nТип файла:" файл $ 1
echo -e "\ nСтатус файла:" stat $ 1
еще
echo "$ FUNCNAME: использование: $ FUNCNAME file"> & 2 return 1
файл_информация () {
# file_info: функция для отображения информации о файле if [[-e $ 1]]; тогда
echo -e "\ nТип файла:" файл $ 1
echo -e "\ nСтатус файла:" stat $ 1
еще
echo "$ FUNCNAME: использование: $ FUNCNAME file"> & 2 return 1
fi
}
fi
}
Теперь, если сценарий, включающий file_info Функция оболочки вызывает функцию с аргументом имени файла, аргумент будет передан функции.
Благодаря этой возможности мы можем написать множество полезных функций оболочки, которые можно использовать не только в сценариях, но и в наших .bashrc файлы.
Обратите внимание, что НАЗВАНИЕ ПРОГРАММЫ переменная была изменена на переменную оболочки ИМЯ ФУНКЦИИ. Оболочка автоматически обновляет эту переменную, чтобы отслеживать выполняемую в данный момент функцию оболочки. Обратите внимание, что $0 всегда содержит полный путь к первому элементу в командной строке (т. е. имя программы) и не содержит имени функции оболочки, как можно было бы ожидать.