Linux 基礎教程 45 read命令

2022-03-05 23:55:59 字數 3416 閱讀 7161

基本用法

read命令主要用於從標準輸入讀取內容或從檔案中讀取內容,並把資訊儲存到變數中。其常用用法如下所示:

read [選項] [檔案]
選項

解釋-a array

將內容讀取到數值中,變數預設為陣列且以空格做為分割符

-d delimiter

遇到指定的字元即停止讀取

-n nchars

指定最多可以讀入的字元數,即定義輸入文字的長度

-r遮蔽轉義符

-p prompt

顯示提示資訊

-s靜默模式,在輸入字元時不在終端中顯示,常用於密碼輸入等

-t timeout

指定超時時間

-u fd

從檔案描述符中讀入,該fd可以由exec開啟

用法示例

1、從標準輸入讀入

[root@localhost test]# cat read.sh

#!/bin/bash

echo -n "please input your name:"

read name

echo "hello $name"

[root@localhost test]# bash read.sh

please input your name:jack

hello jack

2、指定顯示資訊從標準輸入讀入

[root@localhost test]# cat read.sh

#!/bin/bash

# echo -n "please input your name:"

read -p "please input your name:" name

# read name

echo "hello $name"

[root@localhost test]# bash read.sh

please input your name:jack

hello jack

在以上示例中,read是一次可以接受多個引數的,如下所示:

read -p "please input your name:" firstname secondname lastname
但需要注意的事項如下:

3、指定超時時間

[root@localhost test]# cat read.sh

#!/bin/bash

if read -t 3 -p "please input your name:" firstname secondname lastname

then

echo "variable is $firstname - $secondname - $lastname"

else

echo -e "\ntimeout\n"

fi[root@localhost test]# bash read.sh

please input your name:

timeout

4、從指定檔案中讀取內容

[root@localhost test]# cat -n test.txt

1 this is test text.

2 this is second line.

3 hello world

4 c# main

5 python

# 使用-u選項

[root@localhost test]# cat readtest.sh

#!/bin/bash

exec 5< ~/test/test.txt

count=0

while read -u 5 var

do let count=$count+1

echo "line $count is $var"

done

echo "total line count is $count"

exec 5

[root@localhost test]# bash readtest.sh

line 1 is this is test text.

line 2 is this is second line.

line 3 is hello world

line 4 is c# main

line 5 is python

total line count is 5

# 使用管道

[root@localhost test]# cat readtest.sh

#!/bin/bash

count=1

cat ~/test/test.txt | while read line

do echo "current line $count - $line "

let count=$count+1

done

echo "total line count is $count"

[root@localhost test]# bash readtest.sh

current line 1 - this is test text.

current line 2 - this is second line.

current line 3 - hello world

current line 4 - c# main

current line 5 - python

total line count is 1

# 使用重定向

Linux基礎教程

主編 張同光 isbn 9787302183600 定價 34元 印刷日期 2008 10 13 出版社 清華大學出版社 圖書簡介 本書以redhat公司的linux最新版本redhat enterprise linux 5.2為藍本,堅持 理論夠用 側重實用 的原則,用案例 來講解每個知識點,對l...

linux基礎教程

使用者和組操作 linux 作業系統之所以穩定 安全,與它的 使用者和組 的管理是分不開的,我先來看下,現實生活中專案組中的簡單管理 給使用者設定操作檔案許可權的工作非常繁瑣,不要落實。linux 建立使用者的時候,會考慮給使用者建立乙個組別 系統增減檔案的時候,也會把乙個檔案劃分為乙個組別裡邊 這...

Linux基礎教程

自海燕部落格 目錄005 shell第一篇 bash 環境 006 shell第二篇 正規表示式和文字處理工具 007 shell第三篇 基本語法 十天快速入門python python從入門到web框架 python爬蟲從入門到框架 python之23種計模式實現 史上最全最通俗易懂 內容整改中 ...