如何定义一个bash函数用于任何脚本?

gro*_*k12 7 bash export function

我想定义一次并在任何地方使用它.

Ami*_*ani 6

在bash中,您可以source从脚本运行(包含函数的文件作为参数)并简单地调用该函数.这是在.bashrc文件中定义函数时隐式发生的情况.


bar*_*ddu 6

将“通用”函数放在一个单独的脚本中(我们称之为“a”):

#!/bin/bash

test_fun () {
    echo "hi"
}
Run Code Online (Sandbox Code Playgroud)

接下来,将其“导入”到另一个脚本中(例如“b”):

#!/bin/bash

. ./a

test_fun
Run Code Online (Sandbox Code Playgroud)

运行bash b会输出“hi”


Jay*_*Jay 5

虽然我基本上同意@eduffy,但我通常将这些函数放在用户主目录中的文件中,或者如果脚本在用户路径中的目录中的用户之间共享。然后我会(. ~/FILE or . $(type -p FILE))在 .bash_profile 中获取文件。这允许您在必要时“重新获取”文件(即,您更改其中的某些内容)而不必重新登录等。

  • 但是任何读者都需要意识到你必须像这样导出函数名:export -f funcname。 (2认同)