一、概述
read指令接收标準輸入(鍵盤)的輸入,或者其他檔案描述符的輸入。得到輸入後,read指令将資料放入一個标準變量中。
二、使用舉例(這裡僅列出一些常用的選項)
1.基本讀取
其等效于以下:
在上面read後面的變量隻有name一個,也可以有多個,這時如果輸入多個資料,則第一個資料給第一個變量,第二個資料給第二個變量。如果輸入資料個數過多,則最後剩下的所有值都給最後一個變量,如果太少輸入不會結束。
2.在read指令行中也可以不指定變量
如果不指定變量,那麼read指令會将接收到的資料放置在環境變量REPLY中
3.計時輸入
使用read指令存在着潛在危險。腳本很可能會停下來一直等待使用者的輸入。如果無論是否輸入資料腳本都必須繼續執行,那麼可以使用 -t 選項指定一個計時器,指定read指令等待輸入的秒數。當計時滿時,read指令傳回非零值(0為正常退出狀态);
3.設定計數輸入的字元
當輸入的字元數目達到預定數目時,自動退出,并将輸入的資料指派給變量。
該例子使用了-n選項,後接數值1,訓示read指令隻要接受到一個字元就退出。隻要按下一個字元進行回答,read指令立即接受輸入并将其傳給變量。無需按Enter鍵。
4.默讀(輸入不顯示在螢幕上)
有時不希望輸入的資料顯示在螢幕上。典型的例子就是輸入密碼,當然還有很多其他需要隐藏的資料。-s 選項能夠使read指令中輸入的資料不顯示在螢幕上(實際上,資料是顯示的,隻是read指令将文本顔色設定成與背景相同的顔色)。
5.讀檔案
每次調用read指令都會讀取檔案中的"一行"文本。當檔案沒有可讀的行時,read指令将以非零狀态退出。讀取檔案的關鍵是如何将文本中的資料傳送給read指令。最常用的方法是對檔案使用cat指令并通過管道将結果直接傳送給包含read指令的while指令 。
本文轉自yzy121403725 51CTO部落格,原文連結:http://blog.51cto.com/lookingdream/1902111,如需轉載請自行聯系原作者