PgDn, PgUp 처리를 위한 간단한 Script 를 만들었습니다..
첨부에 간단한 Script를 올렸습니다.
좀 엉성한 Code인데요.
PgUp 은 "0x1b, 0x5b, 0x35, 0x7e"와 같은
또 PgDn은 "0x1b, 0x5b, 0x36, 0x7e"와 같은 escapre sequence로
입력이 되던데요.
결국 PgUp, PgDn Key를 처리하려면 이 4값을 읽어서 인식을
하고 그에 맞는 처리를 해줘야 할 것이라고 생각을 했습니다.
일단은 User 입력을 받기 위해서
read -p " Down [PgDn]?, Up [PgUp] ? " opt
라는 line을 사용해 봤는데요.
이렇게 하고 PgDn 이나 PgUp Key를 입력하면 opt가 가지고 있게 되는 값이
"0x1b, 0x5b, 0x35, 0x7e"를 모두 가지고 있게 되는 걸까요?
아니면 첫번째 값인 0x1b만 가지고 있는 걸까요?
이렇게 해서 입력받은 후에,
if [ "$opt" = "$ESC1" ] ; then
echo "0x1b is entered"
fi
해보면, echo 문장이 print되지 않았던 것 같습니다.
여기서 ESC1은 첨부에 있는 것과 같이 ESC1=$'\033'입니다.
그래서, 일단 ESC1을 인식해야 User입력이 Escape Sequence일지 아닐지를
판단할 수 있을 것 같아서요.
입력 받는 부분을 첨부와 같이 수정을 좀 했습니다.
read -n 1 -p " Down [PgDn]? Up[PgUp]? " opt
이렇게 했는데요 ..
이렇게 하면,
if [ "$opt" = "$ESC1" ] ; then
echo "0x1b is entered"
fi
이런 경우에 "0x1b is entered"라는 내용을 잘 print합니다.
하지만 이렇게 하고 나니,
escape sequence두번째,세번째,네번째 값을 읽기 위해 read -n 1을
반복적으로 실행하야 하는 문제가 생기던데요.
일단 첨부처럼 해서 동작이 되는 건 확인을 했는데요.
반복적으로 read를 해서인지, 좀 느려지고, PgDn, PgUp Key를 통해서
앞 화면, 뒤 화면으로 움직일때 좀 버벅거린다는 느낌이 생깁니다.
그래서, 이부분을 어떻게 고치는것이 좋을지 다른 분들의 의견을
들을 수 있을까해서 글을 올려봤습니다.
조언 주시면 감사하겠습니다. ^^
첨부 | 파일 크기 |
---|---|
![]() | 1.11 KB |
댓글 달기