Использование позиционных параметров в функциях

We use cookies. Read the Privacy and Cookie Policy

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

file_info () {

# file_info: функция для вывода информации о файле

if [[ -e $1 ]]; then

echo -e " File Type:"

file $1

echo -e " File Status:"

stat $1

else

echo "$FUNCNAME: usage: $FUNCNAME file" >&2

return 1

fi

}

Теперь, если сценарий, включающий функцию file_info, вызовет ее с именем файла в аргументе, аргумент будет передан в функцию.

Благодаря этому мы получаем возможность написать множество полезных функций для использования не только в наших сценариях, но и в файле .bashrc.

Обратите внимание, что в этом примере вместо переменной PROGNAME используется переменная командной оболочки FUNCNAME. Оболочка автоматически присваивает значение этой переменной в момент вызова функции. Отметьте также, что $0 всегда содержит полный путь к первому элементу командной строки (то есть имя программы), а не имя функции, как можно было бы ожидать.