首頁 運維 linux運維 介紹linux中read的用法

介紹linux中read的用法

Sep 04, 2017 pm 03:38 PM
linux read 用法

1、基本讀取

read指令接收標準輸入(鍵盤)的輸入,或其他檔案描述符的輸入(後面在說)。得到輸入後,read指令將資料放入一個標準變數中。下面是 read指令

的最簡單形式::

#!/bin/bash
echo -n "Enter your name:"   //参数-n的作用是不换行,echo默认是换行
read  name                   //从键盘输入
echo "hello $name,welcome to my program"     //显示信息
exit 0                       //退出shell程序。
//********************************
登入後複製

由於read指令提供了-p參數,允許在read指令列中直接指定一個提示。

所以上面的腳本可以簡寫成下面的腳本::

#!/bin/bash
read -p "Enter your name:" name
echo "hello $name, welcome to my program"
exit 0
登入後複製

在上面read後面的變數只有name一個,也可以有多個,這時如果輸入多個數據,則第一個資料給第一個變量,第二個資料給第二個變量,如果輸入資料個數過多,則最後所有的值都給第一個變數。如果太少輸入不會結束。

//*****************************************

在read命令列中也可以不指定變數.如果不指定變量,那麼read指令會將接收到的資料放置在環境變數REPLY中。

例如::

read -p "Enter a number"

環境變數REPLY中包含輸入的所有數據,可以像使用其他變數一樣在shell腳本中使用環境變數REPLY.

2、計時輸入.

使用read指令存在潛在危險。腳本很可能會停下來一直等待使用者的輸入。如果無論是否輸入資料腳本都必須繼續執行,那麼可以使用-t選項指定 計時器。

-t選項指定read指令等待輸入的秒數。當計時滿時,read指令傳回一個非零退出狀態;

#!/bin/bash
if read -t 5 -p "please enter your name:" name
then 
echo "hello $name ,welcome to my script"
else
echo "sorry,too slow"
fi
exit 0
登入後複製

除了輸入時間計時,還可以設定read指令計數輸入的字元。當輸入的字元數目達到預定數目時,自動退出,並將輸入的資料賦值給變數。

#!/bin/bash
read -n1 -p "Do you want to continue [Y/N]?" answer
case $answer in
Y | y)
  echo "fine ,continue";;
N | n)
  echo "ok,good bye";;
*)
 echo "error choice";;
esac
exit 0
登入後複製

此範例使用了-n選項,後接數值1,指示read指令只要接受到一個字元就退出。只要按下一個字元進行回答,read指令立即

接受輸入並將其傳遞給變數。無需按回車鍵。

 

3、默讀(輸入不顯示在監視器上)

有時會需要腳本使用者輸入,但不希望輸入的資料顯示在監視器上。典型的例子就是輸入密碼,當然還有很多其他需要隱藏的資料。

-s選項能夠使read指令中輸入的資料不會顯示在監視器上(實際上,資料是顯示的,只是 read指令將文字顏色設定為與背景相同的顏色)。

#!/bin/bash
read  -s  -p "Enter your password:" pass
echo "your password is $pass"
exit 0
登入後複製

4、讀取檔案

最後,也可以使用read指令讀取Linux系統上的檔案。

每次呼叫read指令都會讀取檔案中的"一行"文字。當檔案沒有可讀的行時,read指令將以非零狀態退出。

讀取檔案的關鍵是如何將文字中的資料傳送給read指令。

最常用的方法是對檔案使用cat指令並透過管道將結果直接傳送給包含read指令的 while指令

範例::

#!/bin/bash
count=1    //赋值语句,不加空格
cat test | while read line        //cat 命令的输出作为read命令的输入,read读到的值放在line中
do
   echo "Line $count:$line"
   count=$[ $count + 1 ]          //注意中括号中的空格。
done
echo "finish"
exit
登入後複製

以上是介紹linux中read的用法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Android TV Box 獲得非官方 Ubuntu 24.04 升級 Android TV Box 獲得非官方 Ubuntu 24.04 升級 Sep 05, 2024 am 06:33 AM

Android TV Box 獲得非官方 Ubuntu 24.04 升級

deepseek網頁版入口 deepseek官網入口 deepseek網頁版入口 deepseek官網入口 Feb 19, 2025 pm 04:54 PM

deepseek網頁版入口 deepseek官網入口

deepseek怎麼安裝 deepseek怎麼安裝 Feb 19, 2025 pm 05:48 PM

deepseek怎麼安裝

BitPie比特派錢包app下載位址 BitPie比特派錢包app下載位址 Sep 10, 2024 pm 12:10 PM

BitPie比特派錢包app下載位址

BITGet官方網站安裝(2025新手指南) BITGet官方網站安裝(2025新手指南) Feb 21, 2025 pm 08:42 PM

BITGet官方網站安裝(2025新手指南)

詳解:Shell腳本變數判斷參數指令 詳解:Shell腳本變數判斷參數指令 Sep 02, 2024 pm 03:25 PM

詳解:Shell腳本變數判斷參數指令

Zabbix 3.4 原始碼編譯安裝 Zabbix 3.4 原始碼編譯安裝 Sep 04, 2024 am 07:32 AM

Zabbix 3.4 原始碼編譯安裝

歐易okx安裝包直接進 歐易okx安裝包直接進 Feb 21, 2025 pm 08:00 PM

歐易okx安裝包直接進

See all articles