過程試編程語言就三種形式
順序執行,? ? 選擇性執行,? ? ?循環執行
條件判斷
選擇if語句? ? ? ?if 是個關鍵字,不能獨立用,要配合用,(不是內部命令也不是外部命令)
if 的語法?
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《AGE
執行腳本看下
if 語句不適合用來判斷
case 語句
case支持glob風格的通配符
*? :任意長度,任意字符
? :人以單個字符
[] : 指定范圍內的任意單個字符
a|b? ? ?a或b
格式
case? 變量引用 “$? ”? in
PAT1)
分支1
;;
PAT2)
分支2
;;
…..
…..)
默認分支
;;
esac
結束
PAT 可以用通配符表示
判斷YES 或者NO的腳本
執行看下
for ,while , until
是循環執行(重復運行次數)
循環次數已知和循環次數未知
有條件進入和條件退出? 和二為一,滿足執行,不滿足退出
for 循環? ?格式:
for? ? 變量名(*不是變量引用*? in(in后面跟列表,中間空格隔開;循環是看列表有幾個就循環幾次);do
循環體
done
執行機制:依次將列表的元素賦值給“變量名”,每次賦值后執行一次循環,直到列表中的元素耗盡,循環結? ? ? ? ? ? ? ? ? ? ?束
列表的生成方法
1:直接給出列表
2:整數列表
a? :? ? ? ? ? ?{start..end}
{10..2..3}? 10到2 步進負3(從大到小是負 從小到大是正){10..20..3} 10到20 步進正3
b? ?:? ? $(seq [start [step]] end)
seq? 1? 2? 10? 表示的是1-10? 以2為步進? `seq 1 2 10
?` 是個命令 引用命令的用“反向單引號
c? ?只要是生成列表的命令都可以 ls /boot
3:? 返回列表的命令
$(COMMDAND)? ?與`COMMAND
` 效果一樣
4:? 引用glob? ? 通配符 *.sh
5:? 引用變量: $@? ,? ? $#
在寫shell腳本中? declare? 是聲明變量類型的
在shell中如果不聲明變量類型,默認是字符串,但是字符串是無法進行四則運算的,所以要進行運算必須聲明變量為數字類型
格式 :? declare [+/-] [選項] 變量名
–? ? ?#給變量設定類型屬性
+? ? ? #取消變量類型屬性
-a? ? ?#將變量聲明為數組型
-i? ? ? #聲明整數型
-x? ? ?#聲明環境變量
-r? ? ? #將變量聲明只讀變量
-p? ? ? #顯示指定的變量的被聲明類型
實行腳本
搜索網段 看看那些網段被用
if 前面的大括號“{}” 可以加速腳本的加速訪問是并行執行,不是順序執行,? ?&表示在后臺執行 wait是后臺執行完表示結束? 不加wait? 手工去敲回車鍵
也可以把找出來的網段重定向到文件中去
查看文件 cat scannetlist.txt? ? 掃描出來的網段
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/97744