升級到 bash 4.3.30 後,.bashrc 中的匯出 -f 會殺死內建函數嗎?

升級到 bash 4.3.30 後,.bashrc 中的匯出 -f 會殺死內建函數嗎?

我最近透過 macports 將 bash (Mac OS X 10.6.8) 從 3.2.48(1) 升級到 4.3.30(1),雖然安裝似乎很順利,但我的 ~/.bashrc 中的兩個點我export -f myfunc;似乎產生了一些意想不到的結果。各種事情,包括manmore,都會給以下錯誤:

/bin/sh: line 6: 'BASH_FUNC_myfunc%%': not a valid identifier

~/.bashrc 中定義了兩個函數,用於export -f允許另一個腳本呼叫函數;該錯誤將引用 ~/.bashrc 中的第一個錯誤,我不知道行號來自哪裡。輔助腳本正常工作,刪除export-f標誌可以消除錯誤,但顯然會導致腳本無法呼叫函數。

是什麼導致了這種行為以及如何在 bash 4 中正確導出我的函數?

相關內容