Shell 腳本的進階

if case

過程試編程語言就三種形式

順序執行,? ? 選擇性執行,? ? ?循環執行

條件判斷

選擇if語句? ? ? ?if 是個關鍵字,不能獨立用,要配合用,(不是內部命令也不是外部命令)

if 的語法?O(YW`W7EV}5))09AUMB@~X8

if 語句可以嵌套

單分支

if? 判斷條件 ; then

條件為真 執行后面的語句

fi

結尾

雙分支

if 判斷條件; then

條件為真的分支代碼

else? ? ? 條件為假的分支代碼

fi

結束

多分支
if 判斷條件1; then

條件1為真的分支代碼

elif? 判斷條件2;then

條件2為真的分支代碼

elif? ?判斷條件3;then

條件3為真的分支代碼

eles

以上條件都為假的分支代碼

fi

結束

逐條件進行判斷,第一次遇為“真”條件時,執行其分支,而后結束整個if語句

寫個年齡小于18歲? 。18? 《AGE》60 ,60《AGE《150? ? ?151《AGE97$T)SHC@B4~U40~5J7QW0Z

執行腳本看下

J(QB6I0L}O2I0EL9H6CV

if 語句不適合用來判斷

case 語句

case支持glob風格的通配符

*? :任意長度,任意字符

? :人以單個字符

[] : 指定范圍內的任意單個字符

a|b? ? ?a或b

格式

case? 變量引用 “$? ”? in

PAT1)

分支1

;;

PAT2)

分支2

;;

…..

…..)

默認分支

;;

esac

結束

PAT 可以用通配符表示

判斷YES 或者NO的腳本

H8UJ[5`GP(]`SCT08H8$K)H

執行看下

WQU28Z(GK2M_6@~ZCXTI{TL

for ,while , until

是循環執行(重復運行次數)

循環次數已知和循環次數未知

有條件進入和條件退出? 和二為一,滿足執行,不滿足退出

for 循環? ?格式:

for? ? 變量名(*不是變量引用*? in(in后面跟列表,中間空格隔開;循環是看列表有幾個就循環幾次);do

循環體

done

執行機制:依次將列表的元素賦值給“變量名”,每次賦值后執行一次循環,直到列表中的元素耗盡,循環結? ? ? ? ? ? ? ? ? ? ?束

列表的生成方法

1:直接給出列表

B71Y[DK_C}II){4RS$O1AF8

2:整數列表

a? :? ? ? ? ? ?{start..end}

EN}P_NG(E8_266%5O4]A$34

{10..2..3}? 10到2 步進負3(從大到小是負 從小到大是正){10..20..3} 10到20 步進正3

ZJ9B7FDAWEV4YNL$][MAH50

b? ?:? ? $(seq [start [step]] end)

seq? 1? 2? 10? 表示的是1-10? 以2為步進? `seq 1 2 10?` 是個命令 引用命令的用“反向單引號

~EJ4NW_4UP]J)Q8E$JD63DD

c? ?只要是生成列表的命令都可以 ls /boot

4EH8SQGTZ[IJTKNQ@QI}D{H

3:? 返回列表的命令

$(COMMDAND)? ?與`COMMAND` 效果一樣

UYM_AZOOTK6ODI`~R6FJ[6B

4:? 引用glob? ? 通配符 *.sh

2}2~NP~FZO4F{09H0{0CGKK

5:? 引用變量: $@? ,? ? $#

在寫shell腳本中? declare? 是聲明變量類型的

在shell中如果不聲明變量類型,默認是字符串,但是字符串是無法進行四則運算的,所以要進行運算必須聲明變量為數字類型

格式 :? declare [+/-] [選項] 變量名

–? ? ?#給變量設定類型屬性

+? ? ? #取消變量類型屬性

-a? ? ?#將變量聲明為數組型

-i? ? ? #聲明整數型

-x? ? ?#聲明環境變量

-r? ? ? #將變量聲明只讀變量

-p? ? ? #顯示指定的變量的被聲明類型

CT0)W4C{58_U$AR0ZT~FV9K

實行腳本

4XYNA({RQY1B@MJN{K}COPX

搜索網段 看看那些網段被用

Y1G$_W$NGO79J{UOU@81%TH

if 前面的大括號“{}” 可以加速腳本的加速訪問是并行執行,不是順序執行,? ?&表示在后臺執行 wait是后臺執行完表示結束? 不加wait? 手工去敲回車鍵

也可以把找出來的網段重定向到文件中去

WSPC41QO0OM3F482R292~)W

查看文件 cat scannetlist.txt? ? 掃描出來的網段

K__7L$XE{3ZNYU1F15KRB84

 

 

 

 

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/97744

(0)
祝韻杰-桃子祝韻杰-桃子
上一篇 2018-05-07
下一篇 2018-05-07

相關推薦

欧美性久久久久