我需要从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