linux系統中 read命令


1、linux系統中read命令用於從標准輸入中讀取數據,進而給變量賦值。

 簡單用法:

[root@linuxprobe test]# echo $var1 ## 首先查看未賦值前變量,發現是空值 [root@linuxprobe test]# read var1 ## read命令直接跟想要賦值的變量名稱,就可以給變量賦值了(直接通過鍵盤輸入) 001 [root@linuxprobe test]# echo $var1 ##查看通過鍵盤輸入001后變量的值,發現變量var1已經是001. 001

 

2、直接使用read,不加變量名稱,變量賦值給REPLY。

[root@linuxprobe test]# read ##直接使用read命令,不加變量名稱 002 [root@linuxprobe test]# echo $REPLY ## linux默認將變量命名為REPLY 002

 

3、通過-p參數加入提示語

[root@linuxprobe test]# read -p "please input an number:" var1 ## -p參數在輸入變量值前起到提示的作用 please input an number:100 [root@linuxprobe test]# echo $var1 100 [root@linuxprobe test]# read -p "請輸入變量值:" var2 ##同上 請輸入變量值:xxxyyyzzz [root@linuxprobe test]# echo $var2 xxxyyyzzz

 

4、通過-t參數限制輸入變量值的時間

[root@linuxprobe test]# time read -t 3 var1 ## 通過-t設置輸入時間上限3秒,如果3秒內未輸入,變量為空值 real 0m3.001s user 0m0.000s sys 0m0.000s [root@linuxprobe test]# echo $var1 [root@linuxprobe test]# time read -t 3 var1 ## 3秒內輸入變量,可給變量賦值 11 real 0m1.480s user 0m0.000s sys 0m0.000s [root@linuxprobe test]# echo $var1 11

 

5、通過-s 選項隱藏輸入的變量值,比如在屏幕輸入密碼

[root@linuxprobe test]# echo $PASSWD [root@linuxprobe test]# read -s -p "please input your passwd:" PASSWD ## 通過-s參數,可以在給變量PASSWD賦值的時候不在屏幕上顯示 please input your passwd:[root@linuxprobe test]# [root@linuxprobe test]# echo $PASSWD 123456

 

6、通過-n參數實現限定輸入變量的長度

[root@linuxprobe test]# read -n 1 var1 ##限定變量長度為1 u[root@linuxprobe test]# [root@linuxprobe test]# echo $var1 u [root@linuxprobe test]# read -n 5 var1 ## 限定變量長度為5,可以輸入少於和等於5的變量值,但不能大於5 123 [root@linuxprobe test]# echo $var1 123 [root@linuxprobe test]# read -n 5 var1 12345[root@linuxprobe test]# [root@linuxprobe test]# echo $var1 12345

 

7、使用-r參數限制為原始字符串

[root@linuxprobe test]# read var1 abc\defg\hi [root@linuxprobe test]# echo $var1 abcdefghi [root@linuxprobe test]# read -r var1 ## 加-r參數實現不對\進行轉義 abc\defg\hi [root@linuxprobe test]# echo $var1 abc\defg\hi

 

8、從文件中讀取變量值

[root@linuxprobe test]# seq -f test%g 5 > a.txt ##測試文件 [root@linuxprobe test]# cat a.txt test1 test2 test3 test4 test5 [root@linuxprobe test]# ls a.txt [root@linuxprobe test]# cat a.txt | while read i;do mkdir $i;done ##讀取a.txt的每一行作為變量,以變量名創建目錄 [root@linuxprobe test]# ls a.txt test1 test2 test3 test4 test5

 


免責聲明!

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



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