Osx
在 bash_profile 中創建函式時 export -f 語句的作用
我遇到了一個
bash_profile
文件,它**export -f
**以下列方式使用該語句:# Run xelatex and BibTeX function xelatex_bibtex { xelatex -shell-escape "${1}.tex" && bibtex "${1}" && xelatex -shell-escape "${1}.tex" && xelatex -shell-escape "${1}.tex" } export -f xelatex_bibtex
但是,沒有定義的函式
export -f
似乎工作得很好:# Search for synonyms function syn { wn "${1}" -synsn }
在創建與使用相關的便利功能時,它的作用*
export -f
*和被認為是好的做法是什麼?bash_profile``export
它的作用與變數的作用完全相似——即將定義導出到繼承的環境。
所以
$ foo() { echo bar; } $ foo bar
啟動子外殼
$ bash
現在:
$ foo Command 'foo' not found, did you mean: command 'roo' from snap roo (2.0.3) command 'fio' from deb fio command 'fgo' from deb fgo command 'fog' from deb ruby-fog command 'woo' from deb python-woo command 'fox' from deb objcryst-fox command 'goo' from deb goo command 'fop' from deb fop See 'snap info <snapname>' for additional versions.
而導出函式後的同一個子shell:
$ export -f foo $ bash $ foo bar