Linux系统中read的用法,Linux中read命令的用法
1. 簡單讀取
read命令接收標準輸入(鍵盤)的輸入或其他文件描述符的輸入,得到輸入后,read命令將數據放入一個標準變量中。下面是 read命令的最簡單形式:
bixiaopeng@bixiaopengtekiMacBook-Pro linuxTest$ vi read-simple.sh
#!/bin/bash
#這里默認會換行
echo "enter your website: "
#讀取從鍵盤的輸入
read website
echo "your website is $website"
exit 0 #退出
#直接執行shell的結果
bixiaopeng@bixiaopengtekiMacBook-Pro linuxTest$ sh read-simple.sh
enter your website:
www.wirelessqa.com
your website is www.wirelessqa.com
#如果想看清楚每一步的執行,可以加上-x
bixiaopeng@bixiaopengtekiMacBook-Pro linuxTest$ sh -x read-simple.sh
+ echo 'enter your website: '
enter your website:
+ read website
www.wirelessqa.com
+ echo 'your website is www.wirelessqa.com'
your website is www.wirelessqa.com
+ exit 0
2.直接跟上提示read -p
bixiaopeng@bixiaopengtekiMacBook-Pro linuxTest$ vi read-p.sh
#1.讀取單個變量
#!/bin/bash
read -p "enter your website: " website #這里的變量只有一個,也可以有多個
echo "your website is $website"
exit 0
#執行結果
bixiaopeng@bixiaopengtekiMacBook-Pro linuxTest$ sh read-p.sh
enter your website: www.wirelessqa.com
your website is www.wirelessqa.com
#2.讀取多個變量
bixiaopeng@bixiaopengtekiMacBook-Pro linuxTest$ vi read-p-more.sh
#!/bin/bash
#讀取輸入的多個變量
read -p "enter your name and website: " name website
echo "your name is $name,your websit is $website"
exit 0
#執行結果
bixiaopeng@bixiaopengtekiMacBook-Pro linuxTest$ sh -x read-p-more.sh
+ read -p 'enter your name and website: ' name website
enter your name and website: bixiaopeng www.wirelessqa.com
+ echo 'your name is bixiaopeng,your websit is www.wirelessqa.com'
your name is bixiaopeng,your websit is www.wirelessqa.com
+ exit 0
3.計時輸入read -t
-t選項指定read命令等待輸入的秒數。當計時滿時,read命令返回一個非零退出狀態;
使用read命令存在著潛在危險。腳本很可能會停下來一直等待用戶的輸入。如果無論是否輸入數據腳本都必須繼續執行,那么可以使用-t選項指定一個計時器。
bixiaopeng@bixiaopengtekiMacBook-Pro linuxTest$ vi read-t.sh
bixiaopeng@bixiaopengtekiMacBook-Pro linuxTest$ cat read-t.sh
#!/bin/bash
if read -t 10 -p "請在10秒內輸入畢小朋博客的地址: " website
then
if [ $website = "www.wirelessqa.com" ]
then
echo "你輸入的地址是對的:$website"
else
echo "你輸入的網址是錯的:$website"
fi
else
echo "對不起,你已超時,請在10秒內輸入!"
fi
exit 0
#執行結果1
bixiaopeng@bixiaopengtekiMacBook-Pro linuxTest$ sh read-t.sh
請在10秒內輸入畢小朋博客的地址: 對不起,你已超時,請在10秒內輸入!
#執行結果2
bixiaopeng@bixiaopengtekiMacBook-Pro linuxTest$ sh read-t.sh
請在10秒內輸入畢小朋博客的地址: weibo.com/wirelessqa
你輸入的網址是錯的:weibo.com/wirelessqa
#執行結果3
bixiaopeng@bixiaopengtekiMacBook-Pro linuxTest$ sh read-t.sh
請在10秒內輸入畢小朋博客的地址: www.wirelessqa.com
你輸入的地址是對的:www.wirelessqa.com
4.計數輸入read -n數量
當輸入的字符數目達到預定數目時,自動退出,并將輸入的數據賦值給變量
01
bixiaopeng@bixiaopengtekiMacBook-Pro linuxTest$vi?read-n.sh
02
03
bixiaopeng@bixiaopengtekiMacBook-Pro linuxTest$cat?read-n.sh
04
#!/bin/bash
05
06
#例子1.只接收一個輸入就退出
07
read?-n1 -p"你喜歡老畢的博客嗎[y/n]? "?answer
08
case?$answerin
09
Y | y)
10
echo?" 好,謝謝哈!";;
11
N | n)
12
echo?" oh,我會繼續努力的!";;
13
*)
14
echo?" 輸入錯誤,請輸入y/n";;
15
esac
16
17
#例子2.只接收2個輸入就退出
18
read?-n2 -p"請隨便輸入兩個字符: "?any
19
echo?" 您輸入的兩個字符是:$any"
20
exit?0
21
22
#執行結果
23
bixiaopeng@bixiaopengtekiMacBook-Pro linuxTest$ shread-n.sh
24
你喜歡老畢的博客嗎[y/n]? n oh,我會繼續努力的!
25
請隨便輸入兩個字符: ai 您輸入的兩個字符是:ai
5.隱藏輸入read -s
01
bixiaopeng@bixiaopengtekiMacBook-Pro linuxTest$vi?read-s.sh
02
bixiaopeng@bixiaopengtekiMacBook-Pro linuxTest$cat?read-s.sh
03
#!/bin/bash
04
#如果想讓用戶的輸入不顯示在屏幕上,請使用read -s
05
read?-s -p"請輸入你的密碼: "?pass
06
echo
07
echo?"你的密碼是: $pass"
08
exit?0
09
10
#執行結果
11
bixiaopeng@bixiaopengtekiMacBook-Pro linuxTest$ shread-s.sh
12
請輸入你的密碼:
13
你的密碼是: bixiaopeng
6.讀取文件
每次調用read命令都會讀取文件中的”一行”文本。當文件沒有可讀的行時,read命令將以非零狀態退出。
通過什么樣的方法將文件中的數據傳給read呢?使用cat命令并通過管道將結果直接傳送給包含read命令的while命令
01
bixiaopeng@bixiaopengtekiMacBook-Pro linuxTest$vi?read-file.sh
02
03
bixiaopeng@bixiaopengtekiMacBook-Pro linuxTest$cat?read-file.sh
04
#!/bin/bash
05
06
count=1
07
cat?read-s.sh |while?read?line#通過cat read-s.sh文件的輸出,作為read 的輸入給line
08
do
09
echo?"$count: $line"
10
count=$[ $count + 1 ]
11
done
12
echo?"結束"
13
exit?0
14
15
#執行結果
16
bixiaopeng@bixiaopengtekiMacBook-Pro linuxTest$ shread-file.sh
17
1:#!/bin/bash
18
2:#如果想讓用戶的輸入不顯示在屏幕上,請使用read -s
19
3:read?-s -p"請輸入你的密碼: "?pass
20
4:echo
21
5:echo?"你的密碼是: $pass"
22
6:exit?0
23
結束
作者:畢小朋 ?出處: http://www.wirelessqa.com歡迎轉載或分享,但請務必聲明文章出處。如果文章對您有幫助,希望您能推薦或關注。
-a 后跟一個變量,該變量會被認為是個數組,然后給其賦值,默認是以空格為分割符。
-d 后面跟一個標志符,其實只有其后的第一個字符有用,作為結束的標志,會舉例說? 明。
-p 后面跟提示信息,即在輸入前打印提示信息。
-e 在輸入的時候可以時候命令補全功能。
-n 后跟一個數字,定義輸入文本的長度,很實用。
-r 屏蔽\,如果沒有該選項,則\作為一個轉義字符,有的話 \就是個正常的字符了。
-s 安靜模式,在輸入字符時不再屏幕上顯示,例如login時輸入密碼。
-t 后面跟秒數,定義輸入字符的等待時間。
-u 后面跟fd,從文件描述符中讀入,該文件描述符可以是exec新開啟的。
總結
以上是生活随笔為你收集整理的Linux系统中read的用法,Linux中read命令的用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: influxdb数据过期_为什么腾讯QQ
- 下一篇: MATLAB用递归法求解集合子集,用递归