shell 互動輸入

2022-08-22 07:18:11 字數 2168 閱讀 4604

互動輸入與for語句(8-15)

互動輸入

1、read的用法:read命令同時可以定義多個變數值,而輸入的內容預設可以空格為分配符,將值輸入到對應的變數中;如果預設值過多最後所有的值都會被賦予給最後乙個變數

2、如果預設是過少,多餘的變數則為空值。

3、例項 read a b c   aa bb cc

4、read如何輸入:echo 「請輸入乙個目錄」(我們需要echo -n取消換行符號)

echo 「請輸入人乙個目錄:」read變數(請輸入乙個目錄/etc)

5、常用引數:-p  例:read -p 「請輸入乙個目錄」變數

-t:定義超時時間   例:read -t 5 -p「請輸入乙個目錄:」變數

6、指令碼預設值:

練習:輸入乙個裝置檔案,輸出這個裝置檔案的基本資訊。12

3456

78910

1112

#!/bin/bash

#輸入乙個裝置檔案,輸出這個裝置檔案的基本資訊。

read-t 5 -p"請輸入乙個裝置檔名:"devname

[ -z $devname ] && devname=`fdisk-l`

if[ -b/dev/$devname ];then

fdisk-l/dev/$devname

exit0

else

echo"$devname不是裝置檔案"

echo"usage:'請輸入乙個裝置檔案,如sda'"

fi

執行結果:

7、case語句的語法格式:

case  變數  in  

patten1)

**塊1

patten2)

**塊2

**庫esac

for語句迴圈

1、應用場景:有乙個功能,該功能需要迴圈執行,只是迴圈的物件不同,但是迴圈物件是同類資料

2、for語句格式:

for 變數 in 列表;do

迴圈體done

3、echo命令引數:-e:使echo命令能夠識別特殊字元

\r:回車不換行

\n:換行且游標移至行首

\t:製表符(tab鍵)

-n:不換行輸出

4、列表的生成方式:1、直接給出字元列表(例:for i in a b c d e f;do)

2、整數列表  a   

b seq命令引用$(seq [start[step]] end)

(seq最常用功能的就是步長)

3、返回列表的命令(例:$(命令))        

4、glob機制----檔名萬用字元的機制

5、變數應用----傳參:$@ $*將引數作為for迴圈的列表

$0和awk不一樣,bash中的$0代表執行的指令碼檔案

awk中的$0代表整行內容 ----awk按行執行

需要多個詞的時候用「$@」,需要乙個詞的時候用「$」

5、vim常見用法:命令模式下dd為剪下,yy為複製,p為貼上

6、test命令總結:1、test的命令的引數-a、-o只在命令中使用;注:做字元匹配時不支援正規表示式和萬用字元

2、test test==,在連線兩個test的命令的時候,不能使用命令內部的引數-a、-o,一般使用|| && == != >= <=

shell指令碼之輸入互動read

這個 read 內部命令被用來從標準輸入讀取單行資料。這個命令可以用來讀取鍵盤輸入,當使用 重定向的時候,讀取檔案中的一行資料。這個命令有以下語法形式 read options variable.這裡的 options 是下面列出的可用選項中的乙個或多個,且 variable 是用來儲存輸入數值的乙...

shell指令碼中自動化互動輸入

有的shell指令碼需要互動輸入,如果需要批量或者自動化,可以根據實際情況按照如下方法處理 1.重定向 這個方法很簡單,把需要輸入的內容按每行寫入到文件中,然後執行指令碼 vpncmd content2.使用管道 echo e 3 n vpncmd3.使用expect expect是專門用來互動自動...

14 shell指令碼 006互動輸入與for語句

1 互動輸入 read read 命令同時可以定義多個變數值,而輸入的內容預設以空格為分隔符,將值輸入到對應的變數中 如果預設值過少,最後所有的值都會被賦予給最後乙個變數 如果預設值過多,多餘的變數則為空值 read a b c aa bb cc read如何輸入 1 echo 請輸入乙個目錄 我們...