在 fish 中,函数调用与获取 "partial" 文件的优缺点是什么?
In fish, what are the pros and cons of a function call versus sourcing a "partial" file?
举例来说,您有几个不同的 fish 函数用于构建不同类型的项目,但在每个函数中您希望有一个可重复使用的块用于 运行 一些 git 命令。
因此您可以创建一个单独的函数,并从其他函数中调用它,或者您可以获取单独的函数文件,从中删除 function name -d "description"
和 end
行,然后从其他函数只需使用 source /path/to/partial
.
调用它
所以我想知道一个人什么时候应该使用一种方法而不是另一种方法。
使用函数比获取文件有一些优势:
- 您可以使用 tab 键完成函数名称,并添加自定义完成以使用 tab 键完成它们的参数
- 可以使用
funced
和 funcsave
修改它们
- 他们在
~/.config/fish/functions
中有一个标准位置
- 他们可以是autoloaded。
获取文件的一个优点是它可以将变量引入调用者的范围。例如,源文件中的 set var value
将限定为调用者的函数。 (当然,您可以从函数或源文件中显式地使变量成为全局变量:set -g var value
)。
举例来说,您有几个不同的 fish 函数用于构建不同类型的项目,但在每个函数中您希望有一个可重复使用的块用于 运行 一些 git 命令。
因此您可以创建一个单独的函数,并从其他函数中调用它,或者您可以获取单独的函数文件,从中删除 function name -d "description"
和 end
行,然后从其他函数只需使用 source /path/to/partial
.
所以我想知道一个人什么时候应该使用一种方法而不是另一种方法。
使用函数比获取文件有一些优势:
- 您可以使用 tab 键完成函数名称,并添加自定义完成以使用 tab 键完成它们的参数
- 可以使用
funced
和funcsave
修改它们
- 他们在
~/.config/fish/functions
中有一个标准位置
- 他们可以是autoloaded。
获取文件的一个优点是它可以将变量引入调用者的范围。例如,源文件中的 set var value
将限定为调用者的函数。 (当然,您可以从函数或源文件中显式地使变量成为全局变量:set -g var value
)。