可以在不同的脚本中使用bash函数吗?

时间:2009-06-19 05:02:24

标签: bash function

我有一个我想要在不同脚本中引用和使用的函数。有没有办法做到这一点?我不想为不同的脚本重写相同的功能。感谢。

3 个答案:

答案 0 :(得分:66)

当然 - 在您希望使用该功能的脚本中,您可以编写类似

的命令
source function.sh

相当于在运行命令的位置包含文件中function.sh的内容。请注意function.sh需要位于$PATH中的一个目录中;如果不是,则需要指定绝对路径。

答案 1 :(得分:10)

是的,您可以将所有功能本地化为公共文件(或多个文件)。这正是我对所有实用功能的处理。我的主目录中有一个utility.shinc,我的所有程序都使用它:

. $HOME/utility.shinc

在当前shell的上下文中执行脚本。这很重要 - 如果您只是运行include脚本,它将在子shell中运行,任何更改都不会传播到当前shell。

您可以为脚本组执行相同的操作。如果它是“产品”的一部分,我倾向于将所有脚本和任何包含的脚本放在一个shell目录中,以确保所有内容都已本地化。

答案 2 :(得分:-2)

是..你可以! 在脚本中添加 source function_name 。 我更喜欢创建变量eg.VAR = $(funtion_name),如果在#!/ bin / bash之后添加源function_name,那么你的脚本首先执行导入的函数任务然后你当前的脚本任务,这样它更好地创建变量并在任何地方使用在脚本中。 谢谢。希望它为你工作:)