在 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.

调用它

所以我想知道一个人什么时候应该使用一种方法而不是另一种方法。

使用函数比获取文件有一些优势:

  1. 您可以使用 tab 键完成函数名称,并添加自定义完成以使用 tab 键完成它们的参数
  2. 可以使用 funcedfuncsave
  3. 修改它们
  4. 他们在 ~/.config/fish/functions
  5. 中有一个标准位置
  6. 他们可以是autoloaded

获取文件的一个优点是它可以将变量引入调用者的范围。例如,源文件中的 set var value 将限定为调用者的函数。 (当然,您可以从函数或源文件中显式地使变量成为全局变量:set -g var value)。