Linux命令: read的使用

read


read命令從鍵盤讀取變量的值,通常用在shell腳本中與用戶進行交互的場合。該命令可以一次讀取多個變量的值,變量和輸入的值都需要使用空格隔開。在read命令後面,如果沒有指定變量名,讀取的數據將被自動賦值給特定的變量REPLY

語法

read: 用法:read [-ers] [-a 數組] [-d 分隔符] [-i 緩衝區文字] [-n 讀取字符數] [-N 讀取字符數] [-p 提示符] [-t 超時] [-u 文件描述符] [名稱 …]

實例

下面的列表給出了read命令的常用方式

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
#用定界符“:”結束輸入行。

read命令示例

從標準輸入讀取輸入並賦值給變量1987name。

#read 1987name        #等待讀取輸入,直到回車後表示輸入完畢,並將輸入賦值給變量answer
HelloWorld            #控制檯輸入Hello

#echo $1987name       #打印變量
HelloWorld

等待一組輸入,每個單詞之間使用空格隔開,直到回車結束,並分別將單詞依次賦值給這三個讀入變量。

#read one two three
1 2 3                   #在控制檯輸入1 2 3,它們之間用空格隔開。

#echo "one = $one, two = $two, three = $three"
one = 1, two = 2, three = 3

REPLY示例

#read                  #等待控制檯輸入,並將結果賦值給特定內置變量REPLY。
This is REPLY          #在控制檯輸入該行。


#echo $REPLY           #打印輸出特定內置變量REPLY,以確認是否被正確賦值。

This is REPLY

-p選項示例

#read -p "Enter your name: "            #輸出文本提示,同時等待輸入,並將結果賦值給REPLY。
Enter you name: stephen                 #在提示文本之後輸入stephen

#echo $REPLY
stephen

等待控制檯輸入,並將輸入信息視爲數組,賦值給數組變量friends,輸入信息用空格隔開數組的每個元素。

#read -a friends
Tim Tom Helen

#echo "They are ${friends[0]}, ${friends[1]} and ${friends[2]}."
They are Tim, Tom and Helen.

補充一個終端輸入密碼時候,不讓密碼顯示出來的例子。

方法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則允許發送輸出。

使用read命令從鍵盤讀取變量值,並且將值賦給指定的變量,輸入如下命令:

read v1 v3          #讀取變量值

執行上面的指令以後,要求鍵入兩個數據,如下所示:

Linux c+            #輸入數據

完成之後,可以使用echo命令將指定的變量值輸出查看,輸入如下命令:

echo $v1 $v3       #輸出變量的值

執行輸出變量值的命令以後,將顯示用戶所輸入的數據值,如下所示:

Linux c+           #輸出變量值

注意:使用echo命令輸出變量值時,必須在變量名前添加符號$。否則,echo將直接輸出變量名。

發佈了55 篇原創文章 · 獲贊 7 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章