我應該在前面說我從未使用過shell腳本,所以這對我來說都是新的。我能夠做出一些有效的工作,但是非常優化,我不知道如何改進它。如果有什麼這是一個非常熱鬧的腳本:在shell腳本中重複變量
#/bin/bash
get_char() {
old_tty_settings=`stty -g`
stty -icanon min 0 time 1
stty cbreak
grabbed_char=`dd if=/dev/tty bs=1 count=1 2>/dev/null`
stty -cbreak
stty "$old_tty_settings"
}
while true; do
unset char00
unset char01
unset char02
unset char03
unset char04
unset char05
echo -e "\nWaiting for keystroke..."
read -n 1 char00
while true; do
get_char; char01=$grabbed_char
if [ "$char01" != "" ]; then get_char; char02=$grabbed_char
else break
fi
if [ "$char02" != "" ]; then get_char; char03=$grabbed_char
else break
fi
if [ "$char03" != "" ]; then get_char; char04=$grabbed_char
else break
fi
if [ "$char04" != "" ]; then get_char; char05=$grabbed_char
else break
fi
done
fullstring=$char00$char01$char02$char03$char04$char05
echo -e "\nFULLSTRING: !$fullstring!"
done
名單是長了不少,但我饒了你。
基本上,程序需要坐在終端永遠等待按鍵。在初始擊鍵之後,它需要等待很短的時間(在這種情況下爲1/10秒)以進行另一次擊鍵。如果在短時間內沒有註冊按鍵,它會回顯輸出(將使用sed命令進行管理),然後重新啓動。
它意味着與條形碼掃描儀一起使用,您可以掃描4個字符或100個字符。我們希望儘可能快地處理數據,這意味着我們不需要掃描一些東西后1秒的延遲。
一個好的解決方案是,如果可以在收到字符時創建「charXX」。謝謝你的幫助。
你有什麼問題嗎? – Satish
基本上,是否有一個更聰明的方式來做到這一點... – ricco19
那怎麼辦呢http://stackoverflow.com/questions/1624480/c-terminating-the-program-by-pressing-a-key – Satish