我在 bash_profile 文件中定义了一个函数。
pse(){
ps -ef|grep $1
}
Run Code Online (Sandbox Code Playgroud)
现在我可以从命令行调用这个函数。喜欢
pse kafka
Run Code Online (Sandbox Code Playgroud)
它工作正常,因为我可以看到正确的输出。但是当我尝试在脚本文件中调用 pse 函数时,它向我显示“命令未找到”错误。我错过了什么吗?我们是否不允许从 shell 脚本调用 bash_profile 中定义的函数?操作系统:MacOSX 优胜美地
您可以export
从父进程的 shell 中使用该函数,使其在子进程中可用:
export -f pse
Run Code Online (Sandbox Code Playgroud)
从手册中:
出口
Run Code Online (Sandbox Code Playgroud)export [-fn] [-p] [name[=value]]
标记要传递给环境中子进程的每个名称。如果提供了 -f 选项,则名称引用 shell 函数;否则,名称引用 shell 变量。-n 选项意味着不再标记每个名称以供导出。如果未提供名称,或者给出了 -p 选项,则显示所有导出变量的名称列表。-p 选项以可重复用作输入的形式显示输出。如果变量名后跟=value,则变量的值设置为value。
返回状态为零,除非提供了无效的选项、名称之一不是有效的 shell 变量名称,或者 -f 提供的名称不是 shell 函数。
归档时间: |
|
查看次数: |
3185 次 |
最近记录: |