как mv/переименовать несколько файлов, добавив текущую дату в имена файлов

Эта ошибка возникает, когда bash, маскируясь под оболочку POSIX, пытается импортировать эти функции из среды, а не при их загрузке путем интерпретации файла, подобного ~/.bashrcили подобного. Упрощенный пример:

foo.bar(){ true; }; export -f foo.bar; bash --posix -c true
bash: error importing function definition for `foo.bar'

Я ожидал, что bashне будут загружаться функции из среды в режиме posix, но это происходит и ругается только тогда, когда их имена содержат забавные символы.

Обратите внимание, что bashтакже будет работать в режиме posix, если установлена ​​переменная окружения POSIXLY_CORRECTили POSIX_PEDANTICили если он был скомпилирован с --enable-strict-posix-default/ STRICT_POSIX.

Это последнее относится к /bin/shв MacOS (см. здесь для PRODUCT_NAME = sh), где я ожидаю, что эта ошибка также будет возникать при использовании библиотечных функций, таких как popen(3)или system(3).

0
11.10.2021, 09:43
0 ответов

Теги

Похожие вопросы