read命令可以讀取標准輸入的值,並賦予變量。一次可以讀取多個變量的值,變量名或標准輸入之間使用空格隔開。如果read命令后面沒有指定變量名,那么讀取到的值將自動賦予特殊變量REPLY。
read [選項] [變量名 [變量名 變量名 ...]]
(1).常用選項
-s 將標准輸入內容隱藏,多用於隱藏用戶密碼; -t [超時時間] 超過指定的時間限制沒有輸入,將會自動退出當前命令; -n [字符長度] 限制接收的字符長度,接收到指定字符長度后會自動退出當前命令; -r 允許輸入空格、/、\、?等特殊字符; -p [字符串] 給出輸入內容的提示,多用於腳本
(2).實例
輸入多個變量名,讀取多個值
[root@youxi1 ~]# read a b 1 2 [root@youxi1 ~]# echo $a 1 [root@youxi1 ~]# echo $b 2
隱藏標准輸入內容
[root@youxi1 ~]# read -s password [root@youxi1 ~]# echo $password 123456
指定超時時間
[root@youxi1 ~]# read -t 2 a [root@youxi1 ~]# echo $? 142
指定輸入的字符串長度
[root@youxi1 ~]# read -n 2 a 12[root@youxi1 ~]#
允許輸入特殊字符
[root@youxi1 ~]# read a \n [root@youxi1 ~]# echo $a n [root@youxi1 ~]# read -r a \n [root@youxi1 ~]# echo $a \n
在輸入前提示當前應該輸入的內容,其實類似於echo -n "[提示內容]";read [變量名]
[root@youxi1 ~]# read -p "請輸入密碼:" password 請輸入密碼:123456 [root@youxi1 ~]# echo -n "請輸入密碼:";read password 請輸入密碼:123456
腳本綜合使用
[root@youxi1 ~]# vim a.sh #!/bin/bash read -p "請輸入您的賬號:" username read -p "請輸入您的密碼:" -s -r password echo #換行 read -p "請輸入您的郵箱:" email echo "賬號:"$username echo "密碼:"$password echo "郵箱:"$email [root@youxi1 ~]# sh a.sh 請輸入您的賬號:xuexi 請輸入您的密碼: 請輸入您的郵箱:xuexi@shiwokuaile.com 賬號:xuexi 密碼:123456!@#$%^ 郵箱:xuexi@shiwokuaile.com