Re: [問題] 執行shell script過程中禁止/忽略鍵盤輸入
※ 引述《whale76109 (傑)》之銘言:
: ※ 引述《whale76109 (傑)》之銘言:
: : 我想請教各位一個script執行上的問題
: : 為了讓大家簡單明瞭我的問題
: : 我用一個script的例子來說明:
: : #!/bin/bash
: : read test
: : sleep 3
: : echo $test
: : 上面這段code
: : 若是執行到sleep階段時
: : 我在鍵盤上隨意敲幾個字母並且按下enter
: : 例如我敲了:abcdef
: : 執行完這段程式後
: : abcdef會被當成新的指令執行
: : 我要如何才能禁止這種情況發生呢?
: : 換句話說
: : 我要如何在執行一個script的時候
: : 除非我在script中下了read指令
: : 不然所有的鍵盤輸入皆被忽略
: 不曉得還有沒有人可以解決我所描述的問題
: 如果真的沒辦法的話
: 我還有另一個想法
: 只是我也不知道要怎麼實做就是了… Orz
: 因為我只是要"暫時"停止輸入的功能
: 因此如果可以"暫時"把usb鍵盤從系統中卸除
: 需要時再配置回系統
: 那也可以達到我的目的
: 不曉得有沒有人可以提供關於我這兩個想法要如何實做的方法
: 任何一種都可以
: 謝謝
剛剛無聊查了一下@ @
把你原來的script改成如下即可
#!/bin/bash
read test
stty igncr
sleep 3
echo $test
stty -igncr
----------------------------------------------------
只是過程中的輸入的字會出現= =
你可以再看看怎麼解決~~
stty的igncr的指忽略輸入的cr 就是把後來按的enter清掉,
所以就不會在script結束後去執行中途輸入的command
結尾的stty -igncr是還原@@
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.116.154.20
推
04/21 21:42, , 1F
04/21 21:42, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):