Недавно я обновил свой bash (Mac OS X 10.6.8) с 3.2.48(1) до 4.3.30(1) через macports, и хотя установка, похоже, прошла гладко, два места в моем ~/.bashrc, где я имел, export -f myfunc;
похоже, дают некоторые неожиданные результаты. Различные вещи, включая man
и more
, выдают следующую ошибку:
/bin/sh: line 6: 'BASH_FUNC_myfunc%%': not a valid identifier
В ~/.bashrc были определены две функции, которые позволяли export -f
другому скрипту вызывать эту функцию; ошибка будет ссылаться на первую из них, присутствующую в ~/.bashrc, я понятия не имею, откуда взялся номер строки. Вторичные скрипты работают нормально, а удаление export
флага -f
устраняет ошибку, но явно приводит к невозможности скриптов вызывать функцию.
Что является причиной такого поведения и как мне правильно экспортировать свои функции в bash 4?