我有一個shell腳本 -如何逐行閱讀並從鍵盤獲取輸入?
while read -r line;
do
echo $line
done < file.txt
這是工作正常,但我需要從文件中讀取每一行後提示用戶進行輸入。 我試着添加「閱讀」,但這是行不通的。
while read -r line;
do
echo $line
#prompt user here
read input_user
done < file.txt
有什麼想法?我也願意使用awk。
我有一個shell腳本 -如何逐行閱讀並從鍵盤獲取輸入?
while read -r line;
do
echo $line
done < file.txt
這是工作正常,但我需要從文件中讀取每一行後提示用戶進行輸入。 我試着添加「閱讀」,但這是行不通的。
while read -r line;
do
echo $line
#prompt user here
read input_user
done < file.txt
有什麼想法?我也願意使用awk。
對循環的read
使用不同的FD。
while read -u 4 -r line
do
echo $line
#prompt user here
read input_user
done 4< file.txt
可以使用-u
選項read
指定的文件句柄:
while read -u 9 -r line; do
echo $line
read -p 'Press ENTER ' input_user
done 9<file.txt
的-u 9
與9<file.txt
結合意味着,在while
循環讀取和「常規」 read
報表還是來了來自標準輸入。
您通常可以選擇任何文件句柄尚未使用 - 0
,1
和2
分別是標準輸入,輸出和錯誤。我傾向於從9
開始,根據需要一路下調,具體取決於我需要一次訪問多少個文件句柄。
樣品成績單:
pax$ ./qq.sh
line 1
Press ENTER <ENTER pressed>
line 2
Press ENTER <ENTER pressed>
line 3
Press ENTER <ENTER pressed>
line 4
Press ENTER <ENTER pressed>
pax$ _
如果你真的是鍵盤,
while read -r line; do
echo $line
#prompt user here
read input_user </dev/tty
done <file.txt
將從連接終端讀取無論任何改向。
感謝guys..your答案工作正常..現在我很困惑哪一個選擇(滴答)答案:D .. – 2011-02-10 05:41:22