歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> Linux中read命令的用法

Linux中read命令的用法

日期:2017/3/1 14:44:21   编辑:關於Linux
Linux中read命令的用法 1. 簡單讀取 read命令接收標准輸入(鍵盤)的輸入或其他文件描述符的輸入,得到輸入後,read命令將數據放入一個標准變量中。下面是 read命令的最簡單形式: C代碼 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 C代碼 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選項指定一個計時器。 C代碼 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 $answer in 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$ sh read-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$ sh read-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$ sh read-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 結束
Copyright © Linux教程網 All Rights Reserved