如何在非交互式bash脚本及其git子程序中禁用ctrl-c

问题描述 投票:0回答:1

我正在从非交互式bash shell调用git clone。它是非交互性的,因为它是从Windows资源管理器的连续菜单中启动的。我正在Windows 10 64位上运行git版本2.20.1.windows.1。

我正在从上下文菜单启动的Git / usr / bin / mintty窗口中运行Git / usr / bin / bash -l -e'myscript'。

我想阻止用户使用ctrl-c中断git克隆。

我尝试过:

set -m
trap '' SIGINT SIGTERM (2 single quotes)
git clone ... &
wait -n
echo $?

ctrl-c传递到退出的git克隆。我假设它有一个在SIGINT上退出的信号处理程序。我想知道为什么这不起作用。

我尝试过:

saved=$(stty -g)
stty -isig
git clone ...
stty "$saved"

动作失败,出现“ stty:标准输入:设备不适当的ioctl”,因为非交互式bash shell没有tty。那么,如果没有tty,ctrl-c如何进入git克隆?

我正在使用git clone测试,但想将其部署到git pull和git push。我们的开发人员通过使用ctrl-c中断了较长的git pull,从而导致其本地存储库不一致。

任何帮助将不胜感激。

bash copy-paste bash-trap
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.