Linux基礎read命令

2021-08-30 11:12:54 字數 3216 閱讀 9843

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 提...