第二章 從鍵盤或文件中獲取標準輸入:read命令
阿新 • • 發佈:2018-05-09
read命令 從鍵盤或文件中獲取標準輸入 第二章 從鍵盤或文件中獲取標準輸入:read命令
read命令
從鍵盤讀取變量的值,通常用在shell腳本中與用戶進行交互的場合。該命令可以一次讀多個變量的值,變量和輸入的值都需要使用空格隔開。在read命令後面,如果沒有指定變量名,讀取的數據將被自動賦值給特定的變量REPLY
語法
read (選項) (參數)
選項:
? -p 指定讀取值時候的提示符
? -t 指定讀取值時候等待的時間(秒)
參數:
? 變量 :指定讀取值得變量名
查看變量值:
echo $變量名
printf $變量名
註意:使用echo或printf 輸出變量值時,必須在變量名前加$,否則輸出變量名。
實例
常用的read命令方式
-
read name 從標準輸入讀取內容 並賦值給變量name 如: [root@ceshi ~]# read name abc [root@ceshi ~]# echo $abc 123 也可以寫成腳本 [root@ceshi ~]# vi shili.sh #!/bin/bash read name echo "你輸入的名字是:"$name 運行: [root@ceshi ~]# /bin/bash shili.sh 小王 你輸入的名字是:小王
-
read first second 從標準輸入讀取內容,當遇到第一個空格(這裏只能輸入空格,輸入回車程序就退出了) 將輸入的第一個單詞賦值給first;將剩下的賦值給second 如: [root@ceshi ~]# vi shili.sh #!/bin/bash read name age echo "你輸入的名字是:"$name "你輸入的年齡是:"$age 運行: [root@ceshi ~]# /bin/bash shili.sh 小王 22 IT 你輸入的名字是:小王 你輸入的年齡是:22 IT
-
read 從標準輸入讀取到的一行內容賦值給特定變量REPLY 如: [root@ceshi ~]# vi shili2.sh #!/bin/bash read echo $REPLY [root@ceshi ~]# /bin/bash shili2.sh 小王 22 it 小王 22 it
-
read -a arrayname 把單詞清單讀入arrayname的數組裏 如: [root@ceshi ~]# read -a info 小王 22 IT [root@ceshi ~]# echo "你的名字是${info[0]},你的年齡是${info[1]},你的行業是${info[2]}" 你的名字是小王,你的年齡是22,你的行業是IT
?
-
read -p "text" 打印提示text,等待輸入,並將輸入內容賦值給REPLY中。 如: [root@ceshi ~]# read -p "輸入密碼" 輸入密碼abc123 [root@ceshi ~]# echo $REPLY abc123 補充:輸入密碼,不讓密碼顯示出來 方法一: [root@ceshi ~]# read -p "輸入密碼" -s pwd 輸入密碼 [root@ceshi ~]# echo $pwd abc123 -s :代表不顯示終端輸入內容 方法二: [root@ceshi ~]# vi mima.sh #!/bin/bash stty -echo # -echo 表示禁止將輸出發送到終端 read -p "輸入密碼:" pwd stty echo # echo 則允許發送輸出 echo echo $pwd echo 輸入完畢 [root@ceshi ~]# /bin/bash mima.sh 輸入密碼: abc123456 輸入完畢
?
-
read -r line 允許輸入包含反斜杠 [root@ceshi ~]# read -r line abc\abc [root@ceshi ~]# echo $line abc\abc
?
-
read -t 3 指定讀取等待時間為3秒
?
-
read -n 2 var 從輸入中讀取兩個字符並存入變量var,不需要按回車讀取。 如: [root@ceshi ~]# read -n 2 var 你好 # 當輸完你好,夠了兩個字符,程序就自動結束了 [root@ceshi ~]# echo $var 你好
?
-
read -d ":" var 用 定界符 冒號 結束輸入行(也就是說冒號 就等於回車) 如: [root@ceshi ~]# read -d ":" var abc: [root@ceshi ~]# read -d ":" var2 123: [root@ceshi ~]# echo $var abc [root@ceshi ~]# echo $var2 123 當然也可以設置別的結束符 [root@ceshi ~]# read -d "r" var3 456r [root@ceshi ~]# echo $var3 456
?
第二章 從鍵盤或文件中獲取標準輸入:read命令