![升级到 bash 4.3.30 后,.bashrc 中的导出 -f 会杀死内置函数吗?](https://linux22.com/image/57112/%E5%8D%87%E7%BA%A7%E5%88%B0%20bash%204.3.30%20%E5%90%8E%EF%BC%8C.bashrc%20%E4%B8%AD%E7%9A%84%E5%AF%BC%E5%87%BA%20-f%20%E4%BC%9A%E6%9D%80%E6%AD%BB%E5%86%85%E7%BD%AE%E5%87%BD%E6%95%B0%E5%90%97%EF%BC%9F.png)
我最近通过 macports 将 bash (Mac OS X 10.6.8) 从 3.2.48(1) 升级到 4.3.30(1),虽然安装似乎很顺利,但我的 ~/.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 中正确导出我的函数?