當前位置:
首頁 > 知識 > Linux read的用法

Linux read的用法


作者:子非木


鏈接:https://www.cnblogs.com/wangtao1993/p/6136169.html


1、read基本讀取

  1 

#!/bin/bash


  2 

#testing the read command


  3 
  4 

echo

 -n 

"Enter you name:"

   

#echo -n 讓用戶直接在後面輸入 


  5 

read

 name  

#輸入的多個文本將保存在一個變數中


  6 

echo

 

"Hello 

$name

, welcome to my program."

                                      

執行:

# ./

read

.sh
Enter you 

name

: wangtao
Hello wangtao, welcome 

to

 my 

program

.

2、read -p (

直接在read命令行指定提示符

  1 

#!/bin/bash


  2 

#testing the read -p option

  3 

read

 -p 

"Please enter your age: "

 age
  4 days=$[ 

$age

 * 365 ]
  5 

echo

 

"That makes you over 

$days

 days old!"



執行:

# ./age.sh


Please

 enter your age: 

23

That makes you over 

8395

 days old!

3、read -p (指定多個變數)

  1 

#!/bin/bash


  2 

# entering multiple variables


  3 
  4 

read

 -p 

"Enter your name:"

 first last
  5 

echo

 

"Checking data for 

$last

$first

"



執行:

# ./read1.sh


Enter your name: a b
Checking data 

for

 b, a

4、read 命令中不指定變數

,那麼read命名將它收到的任何數據都放在特殊環境變數REPLY中

 1 

#!/bin/bash


  2 

# testing the REPLY environment variable


  3 
  4 

read

 -p 

"Enter a number: "

  5 factorial=1                         
  6 

for

 (( count=1; count<= 

$REPLY

; count++ ))
  7 

do


  8    factorial=$[ 

$factorial

 * 

$count

 ]   

#等號兩端不要有空格


  9 

done


 10 

echo

 

"The factorial of 

$REPLY

 is 

$factorial

"



執行:

./read2.sh
Enter a number: 

6


The factorial 

of

 

6

 

is

 

720



5、超時, 等待輸入的秒數(read -t)

  1 

#!/bin/bash

  2 

# timing the data entry


  3 
  4 

if

 

read

 -t 5 -p 

"Please enter your name: "

 name     

#記得加-p參數, 直接在read命令行指定提示符


  5 

then


  6     

echo

 

"Hello 

$name

, welcome to my script"


  7 

else

  8     

echo

 
  9     

echo

 

"Sorry, too slow!"


 10 

fi



執行:

# ./read3.sh


Please

 enter your name: 
Sorry, too slow!

# ./read3.sh 


Please

 enter your name: wang
Hello wang, welcome to my script

5、read命令對輸入的字元判斷

  1 

#!/bin/bash


  2 

# getting just one character of input


  3 
  4 

read

 -n1 -p 

"Do you want to continue [Y/N]? "

 answer
  5 

case

 

$answer

 

in


  6 Y | y) 

echo


  7        

echo

 

"fine, continue on..."

;;
  8 N | n) 

echo

 
  9        

echo

 

"OK, goodbye"


 10        

exit

;;
 11 

esac

   

執行:

# ./read4.sh


Do

 you want 

to

 

continue

 [Y/N]? y
fine, 

continue

 

on

...

./read4.sh

Do

 you want 

to

 

continue

 [Y/N]? n
OK, goodbye

6、隱藏方式讀取(

read -s

  1 

#!/bin/bash


  2 

# hiding input data from the monitor


  3 
  4 

read

 -s -p 

"Enter your passwd: "

 pass   

#-s 參數使得read讀入的字元隱藏


  5 

echo

 
  6 

echo

 

"Is your passwd readlly 

$pass

?"


~                                          

執行:

# ./read5.sh


Enter

 your passwd: 
Is your passwd readlly osfile@

206

?

7、從文本中讀取

  1 

#!/bin/bash


  2 

# reading data from a file


  3 
  4 count=1
  5 cat 

test

 | 

while

 

read

 line
  6 

do


  7    

echo

 

"Line 

$count

$line

"


  8    count=$[ 

$count

 + 1 ]
  9 

done


 10 

echo

 

"Finished processing the file"



執行:

 ./read6.sh
Line 

1

: The quick brown dog jumps over the lazy fox.
Line 

2

: This 

is

 a test, 

this

 

is

 only a test.
Line 

3

: O Romeo, Romeo! Wherefore art thou Romeo?
Finished processing the file

●編號682,輸入編號直達本文



●輸入m獲取文章

目錄

推薦↓↓↓



運維


更多推薦

25個技術類公眾微信


涵蓋:程序人生、演算法與數據結構、黑客技術與網路安全、大數據技術、前端開發、Java、Python、Web開發、安卓開發、iOS開發、C/C++、.NET、Linux、資料庫、運維等。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Linux學習 的精彩文章:

Linux中如何查詢埠被佔用的情況
138 條 Vim 命令、操作、快捷鍵全集

TAG:Linux學習 |