[Shell學習筆記] read命令從鍵盤或檔案中擷取標準輸入(轉載)

來源:互聯網
上載者:User

標籤:style   blog   http   ar   color   使用   sp   strong   on   

  轉自:http://www.1987.name/151.html

 

  read命令是用於從終端或者檔案中讀取輸入的內部命令,read命令讀取整行輸入,每行末尾的分行符號不被讀入。在read命令後面,如果沒有指定變數名,讀取的資料將被自動賦值給特定的變數REPLY。下面的列表給出了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        #等待讀取輸入,直到斷行符號後表示輸入完畢,並將輸入賦值給變數answerHelloWorld             #控制台輸入Hello#echo $1987name       #列印變數HelloWorld

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

#read one two three1 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 $REPLYstephen

等待控制台輸入,並將輸入資訊視為數組,賦值給陣列變數friends,輸入資訊用空格隔開數組的每個元素。

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

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

方法1:

#!/bin/bashread -p "輸入密碼:" -s pwdechoecho password read, is "$pwd"

方法2:

#!/bin/bashstty -echoread -p "輸入密碼:" pwdstty echoechoecho 輸入完畢。

其中,選項-echo禁止將輸出發送到終端,而選項echo則允許發送輸出。

[Shell學習筆記] read命令從鍵盤或檔案中擷取標準輸入(轉載)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.