首頁  >  文章  >  運維  >  Linux read指令有什麼用

Linux read指令有什麼用

青灯夜游
青灯夜游原創
2023-02-15 10:39:172357瀏覽

在Linux中,read指令用於讀取鍵盤輸入,可以從標準輸入中讀取一行數據,並把輸入行的每個欄位的值指定給shell變量,當使用重定向的時候,可以讀取檔案中的一行數據,語法「read [參數] [name ...]」。

Linux read指令有什麼用

本教學操作環境: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 ...]

參數

##描述-a後面跟著一個變量,該變數會被視為個數組,然後給其賦值,預設​​是以空格為分割符。 -d後面跟著一個標誌符,其實只有其後的第一個字元有用,作為結束的標誌。 -p後面跟著提示訊息,即在輸入前列印提示訊息。 -e在輸入的時候可以使用指令補全功能。 -n後面跟著一個數字,定義輸入文字的長度,很實用。 -r屏蔽\,如果沒有該選項,則\作為一個轉義字符,有的話 \就是個正常的字符了。 -s安靜模式,在輸入字元時不再螢幕上顯示,例如 login 時輸入密碼。 -t後面跟著秒數,定義輸入字元的等待時間。 -u後面跟著 fd,從檔案描述子讀入,該檔案描述子可以是 exec 新開啟的。
#參數

說明

read 內部指令被用來從標準輸入讀取單行資料。這個指令可以用來讀取鍵盤輸入,使用重新導向的時候,可以讀取檔案中的一行資料。

read指令使用範例

#1、簡單讀取

#!/bin/bash
echo "请您输入网站名: "  
#读取从键盘的输入  
read website  
echo "你输入的网站名是 $website"  
exit 0  #退出

#2、讀取檔案

每次呼叫read 指令都會讀取檔案中的"一行" 文字。當檔案沒有可讀的行時,read 指令將以非零狀態退出。

我們可以使用 cat 指令將結果直接傳送給包含 read 指令的 while 指令。

測試文件test.txt 內容如下:

 AAAAAAAAAAAAAAAAAAAAAA

BBBBBBBBBBBBBBBBBBBBBB
##CCCCCCCCCCCCCCCCCCCCCC
DDDDDDDDDDDDDDDDDDDDDD
##============== =====傳智播客

腳本如下,可以將腳本放到xxx.sh中進行執行

#!/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指令輸出變數值時,必須在變數名稱前加上符號

$。否則,echo將直接輸出變數名。

相關推薦:《

Linux影片教學

以上是Linux read指令有什麼用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn