我需要從C/C++程序在Bash環境中定義Bash函數。在環境中設置Bash函數
setenv("my_func", "() { echo \"This is my function\";}", 1);
或者
putenv("my_func=() { echo \"This is my function\";}");
但使用猛砸版:彈震錯誤之前,我可以這樣定義一個函數:
my_func='() { echo "This is my function";}'
或從C程序等同與shellshock固定,我不能管理如何在環境中定義我的功能。
奇怪的是,如果我運行env
,我可以看到我的函數在環境中定義,但如果我稱它爲Bash,則它不存在。
在此先感謝
奇怪:人誰知道內部和無證的方式導出函數,不知道用的記錄方式'declare'或'export' ... – jm666 2014-10-10 07:36:58
@ jm666,已經知道''export -f'',但我需要從C程序中編程執行。我不知道如何從C程序中將函數定義導出到沒有「putenv」或「setenv」的環境中。感謝您的回答 – JoseLSegura 2014-10-10 07:41:29
以便攜的方式做這樣的事情要好得多,在沒有'bash'的環境中,像普通的舊shell,破折號,ksh,zsh等等。因此,您可能希望以@starrify已經告訴您的方式來源他們... – jm666 2014-10-10 07:59:07