如果我在命令期间使用Ctrl+退出脚本,模式就会被卡住! (我在 Windows 10 上使用 Cygwin 终端。)Cread ...
stty -echo
不幸的是,read -s
它无法解决我的问题,因为如果在循环中调用它,它的反应会“缓慢”。 (某些输入可能是可见的。)
#!/usr/bin/env bash
trap 'stty echo && exit' SIGINT
stty -echo
read -n 1 input # pressing Ctrl+C here!!
# ...
但是,如果我-n 1
按预期离开工作:
#!/usr/bin/env bash
trap 'stty echo && exit' SIGINT
stty -echo
read input # pressing Ctrl+C here!!
# ...
由于某种原因,这也按预期工作:
#!/usr/bin/env bash
while getopts k flag; do
case "${flag}" in
k) do_read="true" ;;
esac
done
if [[ $do_read != "true" ]]; then
# just restarting
"$0" -k && stty echo
exit
fi
trap 'echo exiting && exit' SIGINT
stty -echo
read -n 1 input # pressing Ctrl+C here!!
# ...
有人可以解释一下发生了什么事吗?