讀取文件和輸入——read 腳本命令


Linux之read命令使用 

read命令:

read 命令從標准輸入中讀取一行,並把輸入行的每個字段的值指定給 shell 變量

1)read后面的變量var可以只有一個,也可以有多個,這時如果輸入多個數據,則第一個數據給第一個變量,第二個數據給第二個變量,如果輸入數據個數過多,則最后所有的值都給最后一個變量

-p  read –p “提示語句”,則屏幕就會輸出提示語句,如下圖

當變量個數和輸入個數一樣時:

注意空格,要不會出錯

當變量個數和輸入個數不一樣時,即輸入個數比變臉個數多,則多的都賦給最后一個變量:

2)命令計數

-n

read –n 個數

設置read命令計數輸入的字符。當輸入的字符數目達到預定數目時,自動退出,並將輸入的數據賦值給變量

看一下cc.sh腳本的內容:

read –n 1的意思是只接受一個字符

執行

這里輸入y后不用回車,自己就執行

3)等待時間

-t 時間

read –t 時間

使用read命令存在着潛在危險。腳本很可能會停下來一直等待用戶的輸入。如果無論是否輸入數據腳本都必須繼續執行,那么可以使用-t選項指定一個計時器。-t選項指定read命令等待輸入的秒數。當計時滿時,read命令返回一個非零退出狀態;

看一下cc.sh腳本的內容:

執行cc.sh然后等待超過5s,發現自動退出了

4)關閉回顯

-s

read –s

-s選項能夠使read命令中輸入的數據不顯示在監視器上(實際上,數據是顯示的,只是read命令將文本顏色設置成與背景相同的顏色),比如密碼

看一下cc.sh的腳本內容

執行,看到輸入密碼的時候屏幕不顯示

6)從文本讀取內容並且賦給變量

6)讀取輸入
#!/bin/bash
echo -e "Please enter your test :"
read TESTREAD last
echo $TESTREAD
echo $last
結果顯示輸入內容。
Please enter your test
ni hao mingtian
ni
hao mingtian
7 綜合應用

[root@NTP-SERVER shell]# ./4read.sh
are your happy?
happy
happy is the right
where do you work?beijing
lguess beijing keeps you busy!
enter your job title?worker
I thought you might be an worker
who are your best friends?li ming bo
Say hi to ming
[root@NTP-SERVER shell]# cat 4read.sh
#!/bin/bash
echo -e "are your happy?"
read answer
echo "$answer is the right"

echo -n "where do you work?"
read
echo lguess $REPLY keeps you busy!

read -p "enter your job title?"
echo "I thought you might be an $REPLY"

echo -n "who are your best friends?"
read -a friends
echo "Say hi to ${friends[1]}"

可以發現echo -e會有回車,-n着沒有

read是按照空格進行分割的


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM