gpt4 book ai didi

bash - Git 钩子(Hook)。如何从用户输入中读取变量?

转载 作者:行者123 更新时间:2023-12-04 01:16:34 25 4
gpt4 key购买 nike

我正在尝试创建一个预提交 Hook 。我希望它与用户互动。所以,我发现我可以使用read -p "Enter info: " info要不就read info
我创建了一个文件:
预提交:

#!/bin/sh
read -r input
echo $input
它只应该读取变量并输出它。但它不起作用。我的意思是它不能用作钩子(Hook)。如果我使用带有 ./.githooks/pre-commit 的终端运行它, 一切正常。但是当我使用 git commit -am "Hook" ,它回显空字符串并且不读取任何内容。难道我做错了什么?
Git 版本是 2.28.0.windows.1

最佳答案

in this gist ,您可能需要考虑 stderr (由 Git 命令使用,如 for instance here )

#!/bin/sh
# Redirect output to stderr.
exec 1>&2
# enable user input
exec < /dev/tty
这些行之后的脚本示例:
consoleregexp='console.log'
# CHECK
if test $(git diff --cached | grep $consoleregexp | wc -l) != 0
then
exec git diff --cached | grep -ne $consoleregexp
read -p "There are some occurrences of console.log at your modification. Are you sure want to continue? (y/n)" yn
echo $yn | grep ^[Yy]$
if [ $? -eq 0 ]
then
exit 0; #THE USER WANTS TO CONTINUE
else
exit 1; # THE USER DONT WANT TO CONTINUE SO ROLLBACK
fi
fi

关于bash - Git 钩子(Hook)。如何从用户输入中读取变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63258476/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com