read
從鍵盤讀取變量值
補充說明
read命令 從鍵盤讀取變量的值,通常用在shell腳本中與用戶進行交互的場合。該命令可以一次讀取多個變量的值,變量和輸入的值都需要使用空格隔開。在read命令後面,如果沒有指定變量名,讀取的數據將被自動賦值給特定的變量REPLY
語法
1read(選項)(參數)
選項
1-p:指定讀取值時的提示符;
2-t:指定讀取值時等待的時間(秒)。
參數
變量:指定讀取值的變量名。
實例
下面的列表給出了read命令的常用方式:
1read 1987name
2從標準輸入讀取輸入並賦值給變量1987name。
1read first last
2從標準輸入讀取輸入到第一個空格或者回車,將輸入的第一個單詞放到變量first中,並將該行其他的輸入放在變量last中。
1read
2從標準輸入讀取一行並賦值給特定變量REPLY。
1read -a arrayname
2把單詞清單讀入arrayname的數組裏。
1read -p "text"
2打印提示(text),等待輸入,並將輸入存儲在REPLY中。
1read -r line
2允許輸入包含反斜槓。
1read -t 3
2指定讀取等待時間爲3秒。
1read -n 2 var
2從輸入中讀取兩個字符並存入變量var,不需要按回車讀取。
1read -d ":" var
2用定界符“:”結束輸入行。
read命令示例
從標準輸入讀取輸入並賦值給變量1987name。
1#read 1987name #等待讀取輸入,直到回車後表示輸入完畢,並將輸入賦值給變量answer
2HelloWorld #控制檯輸入Hello
3
4#echo $1987name #打印變量
5HelloWorld
等待一組輸入,每個單詞之間使用空格隔開,直到回車結束,並分別將單詞依次賦值給這三個讀入變量。
1#read one two three
21 2 3 #在控制檯輸入1 2 3,它們之間用空格隔開。
3
4#echo "one = $one, two = $two, three = $three"
5one = 1, two = 2, three = 3
REPLY示例
1#read #等待控制檯輸入,並將結果賦值給特定內置變量REPLY。
2This is REPLY #在控制檯輸入該行。
3
4#echo $REPLY #打印輸出特定內置變量REPLY,以確認是否被正確賦值。
5
6This is REPLY
-p選項示例
1#read -p "Enter your name: " #輸出文本提示,同時等待輸入,並將結果賦值給REPLY。
2Enter you name: stephen #在提示文本之後輸入stephen
3
4#echo $REPLY
5stephen
等待控制檯輸入,並將輸入信息視爲數組,賦值給數組變量friends,輸入信息用空格隔開數組的每個元素。
1#read -a friends
2Tim Tom Helen
3
4#echo "They are ${friends[0]}, ${friends[1]} and ${friends[2]}."
5They are Tim, Tom and Helen.
補充一個終端輸入密碼時候,不讓密碼顯示出來的例子。
方法1:
1#!/bin/bash
2read -p "輸入密碼:" -s pwd
3echo
4echo password read, is "$pwd"
方法2:
1#!/bin/bash
2stty -echo
3read -p "輸入密碼:" pwd
4stty echo
5echo
6echo 輸入完畢。
其中,選項-echo
禁止將輸出發送到終端,而選項echo
則允許發送輸出。
使用read命令從鍵盤讀取變量值,並且將值賦給指定的變量,輸入如下命令:
1read v1 v3 #讀取變量值
執行上面的指令以後,要求鍵入兩個數據,如下所示:
1Linux c+ #輸入數據
完成之後,可以使用echo命令將指定的變量值輸出查看,輸入如下命令:
1echo $v1 $v3 #輸出變量的值
執行輸出變量值的命令以後,將顯示用戶所輸入的數據值,如下所示:
1Linux c+ #輸出變量值
注意:使用echo命令輸出變量值時,必須在變量名前添加符號$
。否則,echo將直接輸出變量名。
來源:https://github.com/jaywcjlove/linux-command
最後修改於: Wednesday, January 31, 2024
版權申明:
- 未標註來源的內容皆為原創,未經授權請勿轉載(因轉載後排版往往錯亂、內容不可控、無法持續更新等);
- 非營利為目的,演繹本博客任何內容,請以'原文出處'或者'參考鏈接'等方式給出本站相關網頁地址(方便讀者)。