請告訴我如何導出父shell(bash中,sh或ksh),這樣的功能將可以從父進程launced所有的子進程的功能?導出殼的功能
導出殼的功能
回答
的export -f
功能是專門針對擊:
父
#!/bin/bash
plus1() { echo $(($1 + 1)); }
echo $(plus1 8)
export -f plus1
./child 14 21
孩子
#!/bin/bash
echo $(plus1 $(($1 * $2)))
是導出函數僅適用於子調用?如何將它應用到當前的bash會話?就像.bashrc寫入一樣,但僅限於當前的bash實例... – 2014-05-03 15:37:35
@vp_arth:如果您在子調用中不需要該函數,則不需要導出它。它可以在當前會話中以任何方式使用(請注意,如果它是在文件中定義的,則需要獲取文件的源代碼,而不是運行它以使其在當前會話中可用)。 – 2014-05-03 16:04:58
如果創建()
子shell那麼他們將繼承所有的定義,參數和shell變量的快照。
如果執行他們喜歡的程序,那麼你可以把定義中.bashrc
。
如果您試圖將現有腳本僞裝成執行包裝器或替換PATH命令,則.bashrc
將根據執行的細節工作。如果沒有,你可以改爲執行一個包裝腳本,只是做了.
或定義的函數,然後不帶命令的shell腳本,同樣的事情被取代的包含文件的source
。
這個腳本可能看起來像:
script=$1
shift
. include.sh
. $script "[email protected]"
的想法是,第一個參數是真正的腳本的名稱和其餘參數是指定參數時,那麼上面的腳本改爲運行。
您能否用一些編碼示例來解釋這些問題。我不想把我的功能放在.bashrc中 – 2009-12-11 05:36:46
如果您正在使用KSH或zsh中:
可以使用環境變量FPATH
,其中您可以放置所有功能。
如果FPATH
設置在交互式解釋,並命令或功能並沒有在當前shell環境中發現或PATH
,目錄中所列有搜索的失蹤命令後命名的文件的存在。如果找到了它,它將在當前的shell環境中進行採購,並期望定義該功能。
所以,你可以將所有的功能於一身的位置FPATH
,和兒童腳本也將能夠找到它。
您可以在shell腳本中使用autoload
命令加載您所需要的功能:
autoload fun_a fun_b
在zsh中,爲FPATH
工作autoload
是必需的。在ksh
及其近親屬,我相信這只是導致FPATH
定義在你的PATH覆蓋常規命令的功能,因爲他們如果直接定義。
上FPATH
和一些細節autoload
:
declare -x -f NAME
更多信息
-f restrict action or display to function names and definitions -x to make NAMEs export
請注意,這是**特定於'bash' **。 (''ksh'對應'declare','typeset',具有'-x'選項,但它只適用於_variables_,而不是函數;同樣適用於'zsh')。 – mklement0 2014-11-09 23:15:22
sh
,它是不是可能導出一個函數,如noted by Charles Duffy。
功能本質上不可導出。然而,你可以導出字符串,所以我有一個小竅門在這裏:
# in subshell
eval "$func"
- 1. 貓殼功能
- 2. 導出功能
- 3. Vxworks的殼的grep功能
- 4. 通話功能的外殼
- 5. 導出功能/類
- 6. 導出功能TLD
- 7. Highcharts導出功能
- 8. 導出功能的問題
- 9. 的WebPack導出功能
- 10. Node.js的導出功能
- 11. PHP的CSV導出功能
- 12. 殼牌式功能調用?
- 13. 努力學習殼功能
- 14. 瞭解2殼功能
- 15. rails的導入/導出功能activerecord
- 16. 導出模板功能
- 17. 掛毯導出功能4
- 18. 模塊導出功能
- 19. 烏龜svn導出功能
- 20. 導出功能名稱
- 21. 導出功能,而不
- 22. RequireJS - 導出設定功能
- 23. 導出功能在dll
- 24. 錯誤從Java程序中的 「出口」 殼功能
- 25. 功能導致輸出的解釋
- 26. 導出具有額外功能的塊
- 27. RDLC導出爲UI中的excel功能
- 28. 惱人的PhpMyAdmin導出功能
- 29. 隱藏導出用戶的PowerShell功能
- 30. 休息前退出開關/外殼功能;
http://unix.stackexchange.com:
要導入的功能,從出口字符串重新定義它/ questions/22796/can-i-export-functions-in-bash – 2015-08-23 10:07:50