read命令用來傾聽標準輸入或檔案輸入,把資訊存放到變數中。
-> cat test1
#!/bin/bash
# read 用來傾聽使用者的輸入,將輸入的內容儲存到name變數中,使用echo顯示輸入的內容
echo -n "please input your name:"
read name
echo "welcome $name !!!"
# 賦予執行的許可權
-> chmod u+x test1
# 執行test1
-> ./test1
please input your name:yangyun
welcome yangyun !!!
read命令的簡略寫法-> cat test2
#!/bin/bash
read -p "please input your name:" name
echo "welcome $name !!!"
# 賦予執行的許可權
-> chmod u+x test2
# 執行test2
-> ./test2
please input your name:yyy
welcome yyy !!!
## 如果不寫變數的話,資料會存放到$reply的環境變數中
-> cat tset3
#!/bin/bash
read -p "please input your name and age:"
echo "your name and age is $reply"
# 賦予執行的許可權
-> chmod u+x test3
# 執行test3
-> ./test3
please input your name and age:yangyun 22
your name and age is yangyun 22
read的等待時間-> cat test4
#!/bin/bash
read -t 5 -p "please input your name within 5s:" name
echo "welcome $name !!!"
# 賦予執行的許可權
-> chmod u+x test4
# 執行test4
-> ./test4
# 不輸入,5s後輸出結果
please input your name within 5s:welcome !!!
# 輸入,5後輸入結果
please input your name within 5s:yang
welcome yang !!!
read輸入密碼# 新增「-s」選項
-> cat test5
#!/bin/bash
read -s -p "please input your code:" passwd
echo "hi,your passwd is $passwd"
# 賦予執行的許可權
-> chmod u+x test5
# 執行test5
-> ./test5
please input your code:
hi,your passwd is yyy
read讀取內容-> cat test6
1997
1998
1999
第一種使用-u
-> cat test7
#!/bin/bash
exec 3chmod u+x test7
# 執行test7
-> ./test7
line 1:1997
line 2:1998
line 3:1999
finished
line no is 3
第二種使用管道(「|」)
-> cat test8
#!/bin/bash
count=1
cat test6 | while read line
do echo "line $count:$line"
count=$[$count + 1]
done
echo "finished"
echo "line no is $count"
# 賦予執行的許可權
-> chmod u+x test8
# 執行test8
-> ./test8
line 1:1997
line 2:1998
line 3:1999
finished
line no is 1
第三種使用重定向
-> cat test9
#!/bin/bash
count=0
while read line
do count=$[$count + 1]
echo "line $count:$line"
done < test6
echo "finished"
echo "line no is $count"
# 賦予執行的許可權
-> chmod u+x test9
# 執行test9
-> ./test9
line 1:1997
line 2:1998
line 3:1999
finished
line no is 3
read命令的注意事項
read命令在命令列輸入變數時預設變數之間用空格進行分割;
如果輸入的資料數量少於變數的個數,那麼多餘的變數不會獲取到資料,那麼變數值預設為空。
如果輸入的資料數量多於變數的個數,那麼超出的資料將都會賦值給最後乙個變數。
反斜線""是續行符,在read命令中,不認為這是一行的結束,會繼續讀取下一行,直到遇到真正的換行符「\n」。
在read讀取到的所有的資料中,所有的轉義符表示的特殊含義都是起作用的。可以使用「-r「選項,這樣任何符號都沒有特殊身份了。」-r「選項不僅對讀取的檔案內容有效,而且對鍵盤的輸入也是有效的。
Linux 基礎教程 45 read命令
基本用法 read命令主要用於從標準輸入讀取內容或從檔案中讀取內容,並把資訊儲存到變數中。其常用用法如下所示 read 選項 檔案 選項 解釋 a array 將內容讀取到數值中,變數預設為陣列且以空格做為分割符 d delimiter 遇到指定的字元即停止讀取 n nchars 指定最多可以讀入的...
每日linux命令學習 read命令
read命令 作用 從標準輸入中讀取一行。語法 read ers a array d delim i text n nchars n nchars p prompt t timeout u fd name 描述 read 命令從標準輸入中讀取一行,並把輸入行的每個欄位的值指定給 shell 變數。標...
Linux之read命令使用
ead命令 read 命令從標準輸入中讀取一行,並把輸入行的每個欄位的值指定給 shell 變數 1 read後面的變數var可以只有乙個,也可以有多個,這時如果輸入多個資料,則第乙個資料給第乙個變數,第二個資料給第二個變數,如果輸入資料個數過多,則最後所有的值都給最後乙個變數 p read p 提...