我在bash_profile文件中定义了一个函数。
pse(){
ps -ef|grep $1
}
现在我可以从命令行调用此函数。喜欢
pse kafka
它正常工作,因为我可以看到正确的输出。 但是当我试图在脚本文件中调用pse函数时,它显示“未找到命令”错误。我错过了什么吗?我们不允许从shell脚本调用bash_profile中定义的函数吗? 操作系统:MacOsX Yosemite
答案 0 :(得分:4)
您可以export
来自父shell的函数,使其在子进程中可用:
export -f pse
从手册:
出口
export [-fn] [-p] [name[=value]]
标记要传递给环境中子进程的每个名称。如果提供了-f选项,则名称引用shell函数; 否则名称引用shell变量。 -n选项意味着 不再标记要导出的每个名称。如果没有提供名称,或者如果 给出了-p选项,列出了所有导出变量的名称 显示。 -p选项以可重用的形式显示输出 作为输入。如果变量名后跟= value,则为值 变量设置为值。
除非提供了无效选项,其中一个名称不是有效的shell变量名称,否则返回状态为零,或者提供-f 名称不是shell函数。