ead命令:
read 命令從標(biāo)準(zhǔn)輸入中讀取一行,并把輸入行的每個(gè)字段的值指定給 shell 變量
1)read后面的變量var可以只有一個(gè),也可以有多個(gè),這時(shí)如果輸入多個(gè)數(shù)據(jù)linux命令,則第一個(gè)數(shù)據(jù)給第一個(gè)變量linux命令,第二個(gè)數(shù)據(jù)給第二個(gè)變量,如果輸入數(shù)據(jù)個(gè)數(shù)過(guò)多,則最后所有的值都給最后一個(gè)變量
-p read –p “提示語(yǔ)句”,則屏幕就會(huì)輸出提示語(yǔ)句,如下圖
當(dāng)變量個(gè)數(shù)和輸入個(gè)數(shù)一樣時(shí):
注意空格,要不會(huì)出錯(cuò)
當(dāng)變量個(gè)數(shù)和輸入個(gè)數(shù)不一樣時(shí),即輸入個(gè)數(shù)比變臉個(gè)數(shù)多,則多的都賦給最后一個(gè)變量:
2)命令計(jì)數(shù)
-n
read –n 個(gè)數(shù)
設(shè)置read命令計(jì)數(shù)輸入的字符。當(dāng)輸入的字符數(shù)目達(dá)到預(yù)定數(shù)目時(shí),自動(dòng)退出,并將輸入的數(shù)據(jù)賦值給變量
看一下cc.sh腳本的內(nèi)容:
read –n 1的意思是只接受一個(gè)字符
執(zhí)行
這里輸入y后不用回車,自己就執(zhí)行
3)等待時(shí)間
-t 時(shí)間
read –t 時(shí)間
使用read命令存在著潛在危險(xiǎn)。腳本很可能會(huì)停下來(lái)一直等待用戶的輸入。如果無(wú)論是否輸入數(shù)據(jù)腳本都必須繼續(xù)執(zhí)行,那么可以使用-t選項(xiàng)指定一個(gè)計(jì)時(shí)器。-t選項(xiàng)指定read命令等待輸入的秒數(shù)。當(dāng)計(jì)時(shí)滿時(shí),read命令返回一個(gè)非零退出狀態(tài);
看一下cc.sh腳本的內(nèi)容:
執(zhí)行cc.sh然后等待超過(guò)5s,發(fā)現(xiàn)自動(dòng)退出了
4)關(guān)閉回顯
-s
read –s
-s選項(xiàng)能夠使read命令中輸入的數(shù)據(jù)不顯示在監(jiān)視器上(實(shí)際上,數(shù)據(jù)是顯示的,只是read命令將文本顏色設(shè)置成與背景相同的顏色),比如密碼
看一下cc.sh的腳本內(nèi)容
執(zhí)行,看到輸入密碼的時(shí)候屏幕不顯示
6)從文本讀取內(nèi)容并且賦給變量