1. 程式人生 > >read命令詳解

read命令詳解

目錄

在shell中,可能經常會有這樣的場景,我們希望我們的指令碼具有互動的功能,可以在執行中進行人工控制。這個時候,read命令就派上用場了。

read命令引數說明

-a:將分裂後的欄位依次儲存到指定的陣列中,儲存的起始位置從陣列的index=0開始。 -d:指定讀取行的結束符號。預設結束符號為換行符。 -n:限制讀取N個字元就自動結束讀取,如果沒有讀滿N個字元就按下回車或遇到換行符,則也會結束讀取。 -N:嚴格要求讀滿N個字元才自動結束讀取,即使中途按下了回車或遇到了換行符也不結束。其中換行符或回車算一個字元。 -p:給出提示符。例如,"-p 請輸入密碼:" -r:禁止反斜線的轉義功能。這意味著"\"會變成文字的一部分。 -s:靜默模式。輸入的內容不會回顯在螢幕上。 -t:給出超時時間,在達到超時時間時,read退出並返回錯誤。也就是說不會讀取任何內容,即使已經輸入了一部分。

常用read命令

read -p "for test" var

該命令完成讀取功能,將使用者輸入寫入var變數中。-p表示prompt,表示進行使用者提示。

read -p "for test" -t 10 var

該命令同時具有超時的限制,如果使用者在10秒鐘不能完成輸入則改命令結束,並且var變數值為空。

read -p "for test" -t 10 -s var

該命令會隱藏使用者的輸入,當用戶輸入的時候,介面對使用者不可見。比如當我們輸入密碼的時候,該命令可以起到防止他人窺探的功能。

read -p "for test" -a arr

該命令會完成陣列錄入的功能,會將使用者的多個輸入傳入陣列當中。

while read line
do
    echo $line
done "./file.txt"

該命令會將磁碟上的file.txt讀入到變數line中,並且按行讀取。