從鍵盤讀取變量值,read命令從鍵盤讀取變量的值,通常用在shell腳本中與用戶進行交互的場合。該命令可以一次讀取多個變量的值,變量和輸入的值都需要使用空格隔開。在read命令后面,如果沒有指定變量名,讀取的數據將被自動賦值給特定的變量REPLY
命令語法
read [選項][參數]
命令選項
- -a 后跟一個變量,該變量會被認為是個數組,然后給其賦值,默認是以空格為分割符。
- -d 后面跟一個標志符,其實只有其后的第一個字符有用,作為結束的標志。
- -p 后面跟提示信息,即在輸入前打印提示信息。
- -e 在輸入的時候可以使用命令補全功能。
- -n 后跟一個數字,定義輸入文本的長度,很實用。
- -r 屏蔽\,如果沒有該選項,則\作為一個轉義字符,有的話 \就是個正常的字符了。
- -s 安靜模式,在輸入字符時不再屏幕上顯示,例如login時輸入密碼。
- -t 后面跟秒數,定義輸入字符的等待時間。
- -u 后面跟fd,從文件描述符中讀入,該文件描述符可以是exec新開啟的。
命令參數
變量:指定讀取值的變量名。
從標准輸入讀取輸入並賦值給變量
> read rumenz
123
> echo $rumenz
123
從標准輸入讀取輸入到第一個空格或者回車,將輸入的第一個單詞放到變量rumenz1中,並將該行其他的輸入放在變量rumenz2中。
> read rumenz1 rumenz2
從標准輸入讀取一行並賦值給特定變量REPLY。
> read
123
> echo $REPLY
123
把單詞清單讀入arrayname的數組里。
> read -a arrayname
打印提示(text),等待輸入,並將輸入存儲在REPLY中。
> read -p "text:"
text:123
> echo $REPLY
123
允許輸入包含反斜杠。
> read -r rumenz
指定讀取等待時間為3秒。
> read -t 2 rumenz
從輸入中讀取兩個字符並存入變量var,不需要按回車讀取。
> read -n 2 rumenz
用定界符“:”結束輸入行。
> read -d ":" rumenz
讀入數組
> read -a rumenz
123 456 789
> echo ${rumenz[*]}
123 456 789
終端輸入密碼時候,不讓密碼顯示出來
> read -p "輸入密碼:" -s pd
密碼:
> echo $pd
123456
原文鏈接:https://rumenz.com/rumenbiji/linux-read.html
微信公眾號:入門小站