Last active
January 30, 2023 02:08
-
-
Save blacknon/fbc83a01b92e2970a68cf1644b2fcb51 to your computer and use it in GitHub Desktop.
bash scriptでキー入力を受け付けて処理する検証スクリプト
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# IFSを改行のみにする | |
IFS=$'\n' | |
while read -rsn1 KEY; do | |
case "${KEY}" in | |
# バックスペース・デリートの場合 | |
$'\ch'|$'\b'|$'\x7F') | |
echo "Backspace";; | |
# スペースの場合 | |
' ') | |
echo "Space";; | |
# エスケープシーケンスをハンドリング | |
$'\x1b') | |
# フラッシュで読み取りを行い、ABCD(上下右左)におうじて出力をする | |
read -rsn1 -t 0.1 TMP_KEY | |
if [[ "${TMP_KEY}" == "[" ]]; then | |
read -rsn1 -t 0.1 TMP_KEY | |
case "${TMP_KEY}" in | |
"A") echo "Up";; | |
"B") echo "Down";; | |
"C") echo "Right";; | |
"D") echo "Left";; | |
esac | |
fi | |
# Flush "stdin" with 0.1 sec timeout. | |
read -rsn5 -t 0.1 | |
;; | |
# 空行(Enterキー)の場合はbreak | |
'' ) | |
break;; | |
# デフォルトの場合、単にechoで出力 | |
*) | |
echo "${KEY}"|cat -A | |
;; | |
esac | |
done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment