文章出處

function process_continue()
{
  SAVESTTY=`stty -g`
  stty cbreak
  dd if=/dev/tty bs=1 count=1 > /dev/null 2>&1
  stty -cbreak
  stty $SAVESTTY
}

echo "Press any key to continue..."

process_continue

不用敲擊回車輸入字符:

function read_chars()
{
  SAVESTTY=`stty -g`
  stty cbreak
  dd if=/dev/tty bs=1 count=3 2>/dev/null -從屏幕輸入多個字符的時候bs為1,count可為多個,因為每次鍵入都算一次塊輸入
  stty -cbreak
  stty $SAVESTTY
}

DUMP=`read_chars`

echo $DUMP

關于dd命令:http://blog.chinaunix.net/uid-24958038-id-3416169.html

dd:用指定大小的塊拷貝一個文件,并在拷貝的同時進行指定的轉換。

示例: dd if=./test1.txt of=./test2.txt bs=4 count=1 2>dev/null  - 從./test1.txt中拷貝1個塊大小為4byte的內容到./test2.txt中,2>dev/null 是將去掉dd的一些默認輸出。

關于stty:http://blog.chinaunix.net/uid-2522786-id-223518.html

stty:設置終端屬性

cbreak 同 -icanon 
-cbreak 同 icanon 

-icanon, 設置一次完整的讀操作最小為N個字符 


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


全站熱搜
創作者介紹
創作者 大師兄 的頭像
大師兄

IT工程師數位筆記本

大師兄 發表在 痞客邦 留言(0) 人氣()