在Linux中,read指令用於讀取鍵盤輸入,可以從標準輸入中讀取一行數據,並把輸入行的每個欄位的值指定給shell變量,當使用重定向的時候,可以讀取檔案中的一行數據,語法「read [參數] [name ...]」。
本教學操作環境:linux7.3系統、Dell G3電腦。
Linux read指令介紹
Linux 中的read 指令從標準輸入讀取一行,並把輸入行的每個欄位的值指定給shell 變數。
語法
read [-ers] [-a aname] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]
參數
#參數 | ##描述|
---|---|
後面跟著一個變量,該變數會被視為個數組,然後給其賦值,預設是以空格為分割符。 | |
後面跟著一個標誌符,其實只有其後的第一個字元有用,作為結束的標誌。 | |
後面跟著提示訊息,即在輸入前列印提示訊息。 | |
在輸入的時候可以使用指令補全功能。 | |
後面跟著一個數字,定義輸入文字的長度,很實用。 | |
屏蔽\,如果沒有該選項,則\作為一個轉義字符,有的話 \就是個正常的字符了。 | |
安靜模式,在輸入字元時不再螢幕上顯示,例如 login 時輸入密碼。 | |
後面跟著秒數,定義輸入字元的等待時間。 | |
後面跟著 fd,從檔案描述子讀入,該檔案描述子可以是 exec 新開啟的。 |
說明
read 內部指令被用來從標準輸入讀取單行資料。這個指令可以用來讀取鍵盤輸入,使用重新導向的時候,可以讀取檔案中的一行資料。read指令使用範例
#1、簡單讀取
#!/bin/bash echo "请您输入网站名: " #读取从键盘的输入 read website echo "你输入的网站名是 $website" exit 0 #退出
#2、讀取檔案
每次呼叫read 指令都會讀取檔案中的"一行" 文字。當檔案沒有可讀的行時,read 指令將以非零狀態退出。 我們可以使用 cat 指令將結果直接傳送給包含 read 指令的 while 指令。 測試文件test.txt 內容如下:AAAAAAAAAAAAAAAAAAAAAA腳本如下,可以將腳本放到xxx.sh中進行執行BBBBBBBBBBBBBBBBBBBBBB
##CCCCCCCCCCCCCCCCCCCCCC
DDDDDDDDDDDDDDDDDDDDDD
##============== =====傳智播客
#!/bin/bash count=1 cat test.txt | while read line # cat 命令的输出作为read命令的输入,read读到>的值放在line中 do echo "Line $count:$line" count=$[ $count + 1 ] # 注意中括号中的空格。 done echo "finish" exit 0
3、範例:
read 1987name 从标准输入读取输入并赋值给变量1987name。 read first last 从标准输入读取输入到第一个空格或者回车,将输入的第一个单词放到变量first中,并将该行其他的输入放在变量last中。 read 从标准输入读取一行并赋值给特定变量REPLY。 read -a arrayname 把单词清单读入arrayname的数组里。 read -p "text" 打印提示(text),等待输入,并将输入存储在REPLY中。 read -r line 允许输入包含反斜杠。 read -t 3 指定读取等待时间为3秒。 read -n 2 var 从输入中读取两个字符并存入变量var,不需要按回车读取。 read -d ":" var 用定界符“:”结束输入行。
補充一個終端機輸入密碼時候,不讓密碼顯示出來的範例。
方法1: #!/bin/bash read -p "输入密码:" -s pwd echo echo password read, is "$pwd" 方法2: #!/bin/bash stty -echo read -p "输入密码:" pwd stty echo echo echo 输入完毕。
-echo#禁止將輸出傳送到終端,而選項
echo則允許發送輸出。
$。否則,echo將直接輸出變數名。
Linux影片教學》
以上是Linux read指令有什麼用的詳細內容。更多資訊請關注PHP中文網其他相關文章!