`git 使用 bash 函数平分 运行`

`git bisect run` with a bash function

有没有一种方便的方法可以将 bash 脚本写入 运行 git bisect run,其中使用的 bisect 命令本身就是一个 bash 函数?如果我的函数名为 step,那么 git bisect run stepgit bisect run bash -c step 都无法看到该函数。

我的脚本目前看起来像

function step {
  # Do a bunch of steps here
}

if [[ $_ == [=13=] ]]  # Test if the script is being sourced
then
  git bisect start
  git bisect bad bad-commit
  git bisect good good-commit
  git bisect run bash -c ". [=13=] && step"
  git bisect log
fi

这在传递给 git bisect run 的命令中使用了使脚本源代码本身的粗暴技巧,这意味着我必须在尝试执行 git bisect 之前检查脚本当前是否正在源代码] 命令。

我想我可以将 bash 函数拆分成一个单独的脚本,但是有没有更好的方法在一个文件中完成所有这些工作?

您可以使用 export -f step 导出函数,也可以使用 set -a 导出脚本中的所有内容。