Shell中read的用法詳解

2021-08-07 03:30:45 字數 3263 閱讀 7972

read的常用用法如下:

read -[ps***] var1 var2 ...

-p 提示語句

-n字元個數

-s遮蔽回顯

-t等待時間

-d輸入分界

01). read      						# 從標準輸入讀取一行並賦值給特定變數reply

root@linux~# read

hello,world!

root@linux~# echo $reply

hello,world!

02). read name # 從標準輸入讀取輸入並賦值給變數name

root@linux~# read name

jerry

root@linux~# echo $name

jerry

03). read var1 var2 # 第乙個變數放置於var1,第二個變數放到var2

root@linux~# read firstname lastname

jerry gao

root@linux~# echo "firstname:$firstname lastname:$lastname"

firstname:jerry lastname:gao

04). read -p "text" # 列印提示'text',等待輸入,並將輸入儲存在reply中

root@linux~# read -p 'please enter your name:-->'

please enter your name:-->jerry

root@linux~# echo $reply

jerry

05). read -p "text" var # 列印提示'text',等待輸入,並將輸入儲存在var中

root@linux~# read -p 'please enter your name:-->' name

please enter your name:-->jerry

root@linux~# echo $name

jerry

06). read -p "text" var1 var2 # 列印提示'text',等待輸入,將變數分別儲存在var1,var2...

root@linux~# read -p 'what your name? ' firstname lastname

what your name? jerry gao

root@linux~# echo "firstname:$firstname lastname:$lastname"

firstname: jerry lastname:gao

07). read -r line # 允許輸入包含反斜槓

root@linux~# read line # 不帶-r引數;則反斜槓不顯示

this is line 1. \ this is line 2.

root@linux~# echo $line

this is line 1. this is line 2.

root@linux~# read -r line # 帶-r引數;則反斜槓正常顯示顯示

this is line 1. \ this is line 2.

root@linux~# echo $line

this is line 1. \ this is line 2.

08). read -t 5 # 指定讀取等待時間為5秒

root@linux~# read -t 5 -p 'your name:' name

your name:jerry

root@linux~# echo $name # 如果5秒還未輸入,則不能輸入

jerry

09). read -a arrayname # 把單詞清單讀入arrayname的陣列裡

root@linux~# read -a citys

bj sh cd gz

root@linux~# echo $

bj sh cd gz

root@linux~# echo $

bj10). read -s -p "pwd:" pwd # 使用-s引數可以不顯示使用者的輸入

root@linux~# read -p "enter your password:" -s password

enter your password:

root@linux~#

root@linux~# echo $password # 剛才輸入的密碼為:1234

1234

11). read -n 1 -p "sure?(y/n):" # 使用-n,來確定引數個數

root@linux~# read -n 1 -p "are you sure?(y/n): " answer

are you sure?(y/n): y

root@linux~#

root@linux~# echo -e "your answer is: $answer"

your answer is: y

12). read -d ":" var # 使用:作為輸入分界符

root@linux~# read -d ";" -p "enter your name:" name

enter your name:jerry gao;

root@linux~# echo -e "your name: $name"

your name: jerry gao

read在指令碼中的應用:

遍歷方式一:

#!/bin/bash

count=0

while read line

do echo -e "$count:-->$line"

count=$[ count + 1]

done < /etc/passwd

遍歷方式二:

#!/bin/bash

awk -f: '' /etc/passwd | while read user bash

do echo -e "user=$user; bash=$bash"

done

Shell中read的選項及用法

1.read的一些選項 read可以帶有 a,d,e,n,p,r,t,和 s八個選項。a 將內容讀入到數值中 echo n input muliple values into an array read a array echo get values in array d 表示delimiter,即...

Shell中read的選項及用法

2012 08 12 13 59 33 分類 shell指令碼 舉報 字型大小訂閱 我的 書 1.read的一些選項 read可以帶有 a,d,e,n,p,r,t,和 s八個選項。a 將內容讀入到數值中 echo n input muliple values into an array read a...

shell指令碼 read用法

read 是shell基本讀取函式 基本用法 read 選擇引數 接受變數 預設讀取鍵盤輸入 p指定要顯示的提示 s靜默輸入,一般用於密碼 n 指定輸入的字元長度最大值 d 字元 輸入結束符,當你輸入的內容出現這個字元時,立即結束輸入 t n 超出n秒沒有進行輸入,則自動退出。例項 read 未指定...