繁体   English   中英

如何使用 shell function 在我的 git 预提交挂钩中使用 husky 返回代码?

[英]How can I use a shell function with a return code in my git pre-commit hook using husky?

我有一个由husky package 管理的 githooks 项目。通常我欣赏挂钩的快速失败特性(不确定set -e是否像在 shell 脚本中那样使用)但我今天遇到了一个问题,我自己的自定义 function .我正在尝试根据 function 的返回值做两件事之一:

#!/bin/sh
my_func() {
  # some stuff
  return command
}

if my_func;
then
     echo "func returned 0"
else
     echo "func returned non-zero"
fi

问题是一旦任何 function 返回一个非零值哈士奇退出:

husky - pre-commit hook exited with code 1 (error)

如何忽略/处理来自 function 调用的非零回报? 我不认为我想要某种类型的全局忽略,就像我说的那样,我通常很欣赏这种针对未处理错误的快速失败行为。 我也不认为我可以从 function 返回到共享变量或其他东西,因为我正在用这些 function 调用做很多异步的事情,所以我需要它们的实际返回值。

语法不是if [ condition ] 如果是if cmd (在第一种情况下,命令只是[ with several arguments, the last of which is ] )。 您需要做的就是:

if my_func; then
    echo myfunc returned 0
else
    echo myfunc returned non-zero
fi

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM