您好,登錄后才能下訂單哦!
這篇文章主要講解了“Linux read命令如何使用”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Linux read命令如何使用”吧!
在Linux中,read命令用于讀取鍵盤輸入,可以從標準輸入中讀取一行數據,并把輸入行的每個字段的值指定給shell變量,當使用重定向的時候,可以讀取文件中的一行數據,語法“read [參數] [name ...]”。
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 read命令如何使用”的內容了,經過本文的學習后,相信大家對Linux read命令如何使用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。