명령 중에 +를 사용하여 스크립트를 종료하면 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!!
# ...
무슨 일인지 설명해 줄 수 있는 사람이 있나요?