트랩 및 stty -echo를 사용한 이상한 Cygwin 터미널 동작

트랩 및 stty -echo를 사용한 이상한 Cygwin 터미널 동작

명령 중에 +를 사용하여 스크립트를 종료하면 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!!
# ...

무슨 일인지 설명해 줄 수 있는 사람이 있나요?

관련 정보