我最近透過 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 中正確導出我的函數?