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

2022-05-20 01:38:08 字數 1901 閱讀 9694

1、互動輸入

read  

read 命令同時可以定義多個變數值,而輸入的內容預設以空格為分隔符,將值輸入到對應的變數中;

如果預設值過少,最後所有的值都會被賦予給最後乙個變數;

如果預設值過多,多餘的變數則為空值;     

>read a b c

>aa bb cc 

read如何輸入:

(1)echo "請輸入乙個目錄:"

我們需要echo -n取消換行符號

(2)echo "請輸入乙個目錄:"; read  +變數

請輸入乙個目錄:/etc/

常用引數:

-pread - p  "請輸入乙個目錄:" + 變數

-tread  -t 5 -p "請輸入乙個目錄:" + 變數

指令碼預設值

2、for語句迴圈

for語句的應用場景:

有乙個功能,這個功能需要迴圈執行,只是執行的物件不同;

for語句格式:

for 變數 in 列表;do

迴圈體done  

練習:九九乘法表:

(1)方法一:

(2)方法二:

-e:使echo命令,能夠識別特殊字元

\r : 回車不換行

\n: 換行符

\t :製表符tab = 4個空格

unix2dos  \r\n  -->\n

dos2unix

case語句:

case的語法格式:

case 變數 in

patten1)

**塊1

patten2)

**塊2

列表的生成方式:

1、直接給出字串列表

for i in a b c d e;do 

迴圈體done

2、整數列表  

a 、    //是不行的 = python   range

b 、seq命令引用   $seq[start ... end]

步長  python  range

3、返回列表的命令

$(command)

應用場景:ls /var/log

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

$(ls /var/log)

/var/log/*

test命令總結:

1、test的命令的option的-a -o 只在命令中使用;

5、變數引用---傳參

$@  $*  將引數作為for迴圈

$0  ----和awk的不一樣

bash中的$0   代表執行的指令碼檔案;

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

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

擴充套件:for語句的另外一種寫法:

基於c語言的for語言寫法:

for 變數 in 列表;do

迴圈體done  

優點:不易進入死迴圈

for((i=0;i<10;i++))

for((初始條件;條件判斷語句;值變化語句))  

迴圈體done

while語句的格式:

i = 0 (因為機器識別數字是從0開始的)

初始值while 條件 ;do

迴圈體let i++

done        

14 shell程式設計 Here Document

3.總結 command end document end command是shell 命令 end 是結束標誌cat end shell教程 已經進行了三次改版 end shell教程 已經進行了三次改版name c語言中文網 url age 7 cat end 使用單引號包圍 已經 歲了,它的 ...

14 shell命令之網路操作

對於這個系列的命令其實是最多的,無奈我學的很少.基本上就是常用的乙個命令.ping,ifconfig,netstat,lsof,nslookup,host,ssh,route,tcpdump,traceroute等.下面分別做簡單介紹.1.ping 這個應該沒啥好說的.就是測試雙端鏈路是否通.有乙個...

(14)shell 函式以及函式引數

函式可以讓我們將乙個複雜功能劃分成若干模組,讓程式結構更加清晰,重複利用率更高。shell 函式必須先定義後使用。function name 如果你願意,也可以在函式名前加上關鍵字 function function function name 注意 函式返回值,可以顯式增加return語句 如果不...