Shell中read的選項及用法

來源:互聯網
上載者:User

1. Read的一些選項

 Read可以帶有-a, -d, -e, -n, -p, -r, -t, 和 -s八個選項。

-a :將內容讀入到數值中

echo -n "Input muliple values into an array:"read -a arrayecho "get ${#array[@]} values in array"

-d :表示delimiter,即定界符,一般情況下是以IFS為參數的間隔,但是通過-d,我們可以定義一直讀到出現執行的字元位置。例如read –d madfds value,讀到有m的字元的時候就不在繼續向後讀,例如輸入為 hello m,有效值為“hello”,請注意m前面的空格等會被刪除。這種方式可以輸入多個字串,例如定義“.”作為結符號等等。

-e :只用於互相互動的指令碼,它將readline用於收集輸入行。讀到這幾句話不太明白什麼意思,先跳過。

-n :用於限定最多可以有多少字元可以作為有效讀入。例如echo –n 4 value1 value2,如果我們試圖輸入12 34,則只有前面有效12 3,作為輸入,實際上在你輸入第4個字元‘3’後,就自動結束輸入。這裡結果是value為12,value2為3。

-p :用於給出提示符,在前面的例子中我們使用了echo –n “…“來給出提示符,可以使用read –p ‘… my promt?’value的方式只需一個語句來表示。

-r :在參數輸入中,我們可以使用’/’表示沒有輸入完,換行繼續輸入,如果我們需要行最後的’/’作為有效字元,可以通過-r來進行。此外在輸入字元中,我們希望/n這類特殊字元生效,也應採用-r選項。

-s :對於一些特殊的符號,例如箭頭號,不將他們在terminal上列印,例如read –s key,我們按游標,在斷行符號之後,如果我們要求顯示,即echo,游標向上,如果不使用-s,在輸入的時候,輸入處顯示^[[A,即在terminal上 列印,之後如果要求echo,游標會上移。

-t :用於表示等待輸入的時間,單位為秒,等待時間超過,將繼續執行後面的指令碼,注意不作為null輸入,參數將保留原有的值

2. Read的相關執行個體

a. 拼接檔案

#將afile檔案中的前三行與bfile中的前四行拼接在一起while read -u3 i && read -u4 j;doecho $i $jdone 3<afile 4<bfile

b. 輸入不在終端顯示

read -p "Input passwd:" -s Passwdecho $Passwd

c. 限時輸入,否則退出

#延遲五秒,沒有輸入將自動結束read -p "Input a number:" -t 5 Number

d. 讀取限定字元

#從輸入中取5個字元read -p "Input a word:" -n 5 Word

e. 等待輸出q退出

#輸入,直到輸入q,將自動結束read -dp -p "Input some words end with q:" word
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.