我有一个我想要在不同脚本中引用和使用的函数。有没有办法做到这一点?我不想为不同的脚本重写相同的功能。感谢。
答案 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,那么你的脚本首先执行导入的函数任务然后你当前的脚本任务,这样它更好地创建变量并在任何地方使用在脚本中。 谢谢。希望它为你工作:)