PgDn, PgUp 처리를 위한 간단한 Script 를 만들었습니다..

hyper9의 이미지

첨부에 간단한 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를 통해서
앞 화면, 뒤 화면으로 움직일때 좀 버벅거린다는 느낌이 생깁니다.

그래서, 이부분을 어떻게 고치는것이 좋을지 다른 분들의 의견을
들을 수 있을까해서 글을 올려봤습니다.

조언 주시면 감사하겠습니다. ^^

File attachments: 
첨부파일 크기
Plain text icon page.txt1.11 KB

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.