Re: [問題] 執行shell script過程中禁止/忽略鍵盤輸入

看板Linux作者 (歐克麵)時間14年前 (2011/04/21 18:51), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串3/3 (看更多)
※ 引述《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
文章代碼(AID): #1Di0mZWt (Linux)
討論串 (同標題文章)
文章代碼(AID): #1Di0mZWt (Linux)