中文字幕亚洲第一精品|精品国产免费一区二区|久久婷婷五月六月综合版|中文字幕熟妇久久久人妻|久久综合精品国产一区无码|国产成人精品永久免费视频|午夜亚洲国产精品理论片a级|久久精品一区二区三区无码护土

 訪問手機(jī)版  

Linux常用命令|Linux培訓(xùn)學(xué)習(xí)|考試認(rèn)證|工資待遇與招聘,認(rèn)準(zhǔn)超級(jí)網(wǎng)工!

招聘|合作 登陸|注冊(cè)

網(wǎng)絡(luò)工程師培訓(xùn)

當(dāng)前位置:網(wǎng)絡(luò)工程師 > 技術(shù)課程 > linux > 熱點(diǎn)關(guān)注 > linux常用命令

linux下read命令詳解

時(shí)間:2019-10-31

linux命令大全_linux命令大全_linux命令分類大全

要與Linux交互,腳本獲取鍵盤輸入的結(jié)果是必不可少的,read可以讀取鍵盤輸入的字符。

read [-rs] [-a ARRAY] [-d delim] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [var_name1 var_name2 ...]

read命令用于從標(biāo)準(zhǔn)輸入中讀取輸入單行,并將讀取的單行根據(jù)IFS變量分裂成多個(gè)字段,并將分割后的字段分別賦值給指定的變量列表var_name。第一個(gè)字段分配給第一個(gè)變量var_name1,第二個(gè)字段分配給第二個(gè)變量var_name2linux命令大全,依次到結(jié)束。如果指定的變量名少于字段數(shù)量,則多出的字段數(shù)量也同樣分配給最后一個(gè)var_name,如果指定的變量命令多于字段數(shù)量,則多出的變量賦值為空。

如果沒有指定任何var_name,則分割后的所有字段都存儲(chǔ)在特定變量REPLY中。

選項(xiàng)說明:
-a:將分裂后的字段依次存儲(chǔ)到指定的數(shù)組中,存儲(chǔ)的起始位置從數(shù)組的index=0開始。
-d:指定讀取行的結(jié)束符號(hào)。默認(rèn)結(jié)束符號(hào)為換行符。
-n:限制讀取N個(gè)字符就自動(dòng)結(jié)束讀取,如果沒有讀滿N個(gè)字符就按下回車或遇到換行符,則也會(huì)結(jié)束讀取。
-N:嚴(yán)格要求讀滿N個(gè)字符才自動(dòng)結(jié)束讀取,即使中途按下了回車或遇到了換行符也不結(jié)束。其中換行符或回車算一個(gè)字符。
-p:給出提示符。默認(rèn)不支持"\n"換行,要換行需要特殊處理,見下文示例。例如,"-p 請(qǐng)輸入密碼:"
-r:禁止反斜線的轉(zhuǎn)義功能。這意味著"\"會(huì)變成文本的一部分。
-s:靜默模式。輸入的內(nèi)容不會(huì)回顯在屏幕上。
-t:給出超時(shí)時(shí)間,在達(dá)到超時(shí)時(shí)間時(shí),read退出并返回錯(cuò)誤。也就是說不會(huì)讀取任何內(nèi)容,即使已經(jīng)輸入了一部分。

使用示例:

linux命令分類大全_linux命令大全_linux命令大全

(1).將讀取的內(nèi)容分配給數(shù)組變量linux命令大全,從索引號(hào)0開始分配。

[root@xuexi ~]# read -a array_test
what is you name?    
[root@xuexi ~]# echo ${array_test[@]}
what is you name?
[root@xuexi ~]# echo ${array_test[0]}
what

(2).指定讀取行的結(jié)束符號(hào),而不再使用換行符。

[root@xuexi ~]# read -d '/'
what is you name \//       # 輸入完尾部的"/",自動(dòng)結(jié)束read

由于沒有指定var_name,所以通過$REPLY變量查看read讀取的行。

[root@xuexi ~]# echo $REPLY
what is you name /

linux命令大全_linux命令分類大全_linux命令大全

(3).限制輸入字符。

例如,輸入了5個(gè)字符后就結(jié)束。

[root@xuexi tmp]# read -n 5
12345
[root@xuexi tmp]# echo $REPLY   # 輸入12345共5個(gè)字符
12345

如果輸入的字符數(shù)小于5,按下回車會(huì)立即結(jié)束讀取。

[root@xuexi ~]# read -n 5
123
[root@xuexi ~]# echo $REPLY
123

但如果使用的是"-N 5"而不是"-n 5",則嚴(yán)格限制讀滿5個(gè)字符才結(jié)束讀取。

linux命令分類大全_linux命令大全_linux命令大全

[root@xuexi ~]# read -N 5
123\n4
[root@xuexi ~]# read -N 5
123          # 3后的回車(換行)算是一個(gè)字符
4

(4).使用-p選項(xiàng)給出輸入提示。

[root@xuexi ~]# read -p "pls enter you name: "
pls enter you name: Junmajinlong
[root@xuexi ~]# echo $REPLY
Junmajinlong
 上一個(gè)教程:工作中常用的Linux命令