read命令是一個bash命令,它用于從鍵盤或標準輸入中讀取文本.我們可以使用read以交互的形式讀取來自用戶的輸入.并且read還提供一種不需要按回車就能夠輸入參數的方法.
read可以從標準輸入中讀取單獨的一行,或者使用-u選項,從文件描述符FD中讀取.并且這單獨的行被分隔成多個域,第一個詞被賦值給第一個變量,第一個賦值給第二個變量,以此類推,直到剩下的所有詞都賦值給最后一個變量.如果沒有提供name變量,則讀取的行被存放在REPLY變量中
用法: read [option]… [function]… [name]…
選項:
-a arrary 將字符賦值給ARRARY數組變量的序列下表成員,從零開始
-d delim 持續讀取直到讀入DELIM變量中的第一個字符,而不是換行符
-e 在一個交互式shell中使用readline獲取行
-i text 使用TEXT文本作為readline的初始文字
-n nchars 讀取語句中的n個字符并且存入變量中
-N nchars 在準確讀取n個字符之后返回,除非遇到了文件結束符或者讀超時,任何分隔符都被忽略
-p prompt 用于顯示提示信息,并且末尾不帶換行符
-r 不允許反斜杠轉義任何字符
-s 不顯示終端的任何輸入
-t timeout 如果在timeout秒內沒有讀取一個完整的行則超時并且返回失敗信息.TMOUT變量的值是默認的超時時間.timeout可以是小數.如果timeout是0,那么僅當在指定的文件描述符上輸入有效的時候,read才會返回成功.如果超過了超時時間,則返回狀態碼大于128
-u fd 從文件描述符FD中讀取,而不是標準輸入
實戰演練:
1、從下面的語句中讀取n個字符并存入變量var中
read -n number_of_chars var
例如 read -n 2 var
echo $var
2、用無回顯的方式讀取密碼
read -s var
3、顯示提示信息
read -p “enter input:” var
4、在特定時限內讀取輸入,超時會返回
read -t timeout var
例如: read -t 2 var
5、用特殊的定界符作為輸入行的結束
read -d “:” var
例如: read -d “:” var
原創文章,作者:black_fish,如若轉載,請注明出處:http://www.www58058.com/33389