gpt4 book ai didi

linux - 无法在 git hook 预推脚本调用的 shell 脚本中获取用户的输入

转载 作者:太空宇宙 更新时间:2023-11-04 11:55:51 25 4
gpt4 key购买 nike

我正在从另一个 shell 脚本运行 shell 脚本,该脚本是 git-hook pre-push

这是.git/hooks/pre-push的内容:

#!/usr/bin/env bash

protected_branch='master'
current_branch=$(git symbolic-ref HEAD | sed -e 's,.*/\(.*\),\1,')

if [ $protected_branch = $current_branch ]; then
sh test.sh
if [ $? != 0 ]; then
echo "Error"
exit 1
fi
else
exit 0
fi

这是test.sh的内容:

#!/bin/bash
run_base=1
run_test () {
read -p "enter varname: " varname
echo $varname
}
time {
if [ "$run_base" = "0" ] ; then
echo "skipped"
else
time { run_test ; }
echo "run_test done";
fi
}

如果我直接运行 pre-push 脚本,那么它工作正常,但是当我执行 git push origin masterpre- 时它不起作用push 自动触发。

当我触发 pre-push 钩子(Hook)脚本时,test.sh 中的

read 没有被执行。我是否需要做任何特定的事情才能在 test.sh 中执行 read,这是从 pre-push 调用的?

最佳答案

我刚刚在我的电脑上测试它,它运行完美,isoto@hal9014-2 ~/w/test> ./pre-push输入变量名:asd广告

真实的 0m1.361s用户 0m0.000s系统 0m0.000s运行测试完成

真实的 0m1.361s用户 0m0.000s系统 0m0.000s

所以,我唯一做的就是添加可执行权限,chmod +x *而且我将两个脚本放在同一个目录中,除此之外一切都应该有效。

关于linux - 无法在 git hook 预推脚本调用的 shell 脚本中获取用户的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54338028/

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