簡體   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