Согласно man bash , идентификаторы bash могут состоять из «только буквенно-цифровых символов и подчеркиваний», однако bash похоже, терпимо относился к этому вплоть до патча « shellshock . На самом деле, это все еще так, но теперь он просто выдает раздражающее сообщение об ошибке. Я признаю, что принял глупое решение, когда решил включить точки в мою схему именования функций, но у меня есть более 100 named.like.this и что еще хуже, я зависим от этой структуры, потому что они организованы в " классы ", и вызывать друг друга на основе этой схемы именования. Я ищу решение для подавления этого сообщения об ошибке в глобальном масштабе, потому что очень непрактично изменять все имена функций.

my.function(){ echo hello world;}
export -f my.function
tar --help
/bin/bash: error importing function definition for `BASH_FUNC_my.function'
Usage: tar -[cxtzjhmvO] [-X FILE] [-T FILE] [-f TARFILE] [-C DIR] [FILE]...

(он жалуется только на экспортируемые функции, но большинство из них необходимо экспортировать; версия bash - 4.2.37)

0