read 讀取變數值

2022-07-21 03:15:13 字數 2332 閱讀 7016

read命令從鍵盤讀取變數的值,通常用在shell指令碼中與使用者進行互動的場合。該命令可以一次讀取多個變數的值,變數和輸入的值都需要使用空格隔開。在read命令後面,如果沒有指定變數名,讀取的資料將被自動賦值給特定的變數reply

從標準輸入讀取輸入並賦值給變數1987name。
#read name        #等待讀取輸入,直到回車後表示輸入完畢,並將輸入賦值給變數answer

helloworld #控制台輸入hello

#echo $name #列印變數

helloworld

還可以使用 -n 引數設定 read 命令計數輸入的字元。當輸入的字元數目達到預定數目時,自動退出,並將輸入的資料賦值給變數。

[root@xiaolizi ~]# read -t 4 -p "輸入:" name

輸入:[root@xiaolizi ~]# read -n 2 -p "ss: " hehe

ss: sd[root@xiaolizi ~]#

-t 引數指定 read 命令等待輸入的秒數,當計時滿時,read命令返回乙個非零退出狀態。

#!/bin/bashifread -t 5-p "輸入**名:"name

thenecho "你輸入的**名是 $website"elseecho "\n抱歉,你輸入超時了。"fiexit0

執行程式不輸入,等待 5 秒後:

輸入**名:抱歉,你輸入超時了

等待一組輸入,每個單詞之間使用空格隔開,直到回車結束,並分別將單詞依次賦值給這三個讀入變數。

#read one two three

1 2 3 #在控制台輸入1 2 3,它們之間用空格隔開。

#echo "one = $one, two = $two, three = $three"

one = 1, two = 2, three = 3

reply示例
#read                  #等待控制台輸入,並將結果賦值給特定內建變數reply。

this is reply #在控制台輸入該行。

#echo $reply #列印輸出特定內建變數reply,以確認是否被正確賦值。

this is reply

-p選項示例
#read -p "enter your name: "            #輸出文字提示,同時等待輸入,並將結果賦值給reply。

enter you name: stephen #在提示文字之後輸入stephen

#echo $reply

stephen

等待控制台輸入,並將輸入資訊視為陣列,賦值給陣列變數friends,輸入資訊用空格隔開陣列的每個元素。
#read -a friends

tim tom helen

#echo "they are $, $ and $."

they are tim, tom and helen.

補充乙個終端輸入密碼時候,不讓密碼顯示出來的例子。方法1:
#!/bin/bash

read -p "輸入密碼:" -s pwd

echo

echo password read, is "$pwd"

讀取檔案

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

通過什麼樣的方法將檔案中的資料傳給 read 呢?使用 cat 命令並通過管道將結果直接傳送給包含 read 命令的 while 命令。

測試檔案 test.txt 內容如下:

123456runoob

測試**:

#!/bin/bashcount=1# 賦值語句,不加空格cat test.txt |whileread line      # cat 命令的輸出作為read命令的輸入,read讀到》的值放在line中doecho "line $count:$line"count=$[$count +1]# 注意中括號中的空格。doneecho "finish"exit0

執行結果為:

line1:123line2:456line3:runoob

finish

shell 之 read命令 讀取變數值

從就鍵盤讀取變數的值,通常用在shell指令碼中與使用者進行互動的場合。該命令可以一次讀取多個變數的值,變數和輸入的值都需要使用空格隔開。在read命令後面,如果沒有指定變數名,讀取的資料將被自動賦值給特定的變數reply 引數意義 作用 s隱藏使用者鍵入的值 p列印提示資訊來提示使用者輸入正確的內...

python變數值 Python變數值轉變量

今天用python讀取乙個有很多欄位的配置檔案,配置檔案中的格式類似 pidstart 2600 startfid 47 starttid 450 startfirst 1 message 一般會想到的是 config open configpath,r for item in config set...

Makefile列印變數值

makefile第二講 列印出內容和使用變數 摘要 echo 開始生成最終執行檔案,請稍候.這一句便是將一條資訊輸出到終端,為何前邊有個 符號呢?有了這個符號該命令本身就不會輸出到終端 不理解,自己去掉或者加上 符號試試 實驗證明,字串可以不加引號。看到 objs main.o 了嗎?這就是變數的定...