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)從文本讀取內容並且賦給變量
echo -e "Please enter your test :"
read TESTREAD last
echo $TESTREAD
[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是按照空格進行分割的