簡體   English   中英

如何逐行循環 .txt 文件並等待鍵盤按下以繼續閱讀下一行?

[英]How to loop a .txt file line by line and wait for key board press to continue to read next line?

以下是我寫的當前shell命令。 運行時打印第一行。 然后它read下一行的第一個字母並繼續避免我期望的暫停,直到按下鍵盤按鍵。 如何避免這種情況?

while read p; do
    echo "SEARCHING : $p ..."
    read -p "Press any key to continue... " -n1 -s
    echo -n "0047 SER 127.0.1.1 57000 \"$p\" 3" | nc -u 127.0.1.1 57000
done <Queries

查詢文件內容

Twilight
Jack
American Idol
Happy Feet
Twilight saga
Happy Feet
Happy Feet
Feet
....
....

shell腳本的輸出

SEARCHING : Twilight ...
SEARCHING : ack ...
SEARCHING : merican Idol ...
SEARCHING : appy Feet ...
SEARCHING : wilight saga ...
....
....

問題是 while 循環的主體從 while 繼承了 stdin,使內部read從查詢文件中讀取一行,快速解決方法是指定來自 tty 的輸入:

while IFS= read -r p; do
    echo "SEARCHING : $p ..."
    read -p "Press any key to continue... " -n1 -s < /dev/tty
    echo -n "0047 SER 127.0.1.1 57000 \"$p\" 3" | nc -u 127.0.1.1 57000
done <Queries

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM