? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?day28
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?作者:黃勝
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?日期:2019/04/09
學(xué)習(xí)shell編程
前言:在linux中系統(tǒng)中大量的使用shell煤墙。工作中我們也需要實現(xiàn)業(yè)務(wù)擎宝,例如:自動備份、監(jiān)控刻恭、自動安裝服務(wù)等,所以shell編程是linux運(yùn)維人員必須具備的本領(lǐng)因谎。
定義:shell是一種命令解釋器仇味,它會把接收到的命令傳給操作系統(tǒng)處理,然后再輸出給用戶茧痕。shell腳本:程序命令放入文件并執(zhí)行,這個文件被稱為腳本恼除。
分類:shell包括csh凿渊、tcsh兩個類型。
1缚柳、shell 變量:
a.全局變量(環(huán)境變量):在整個系統(tǒng)中生效埃脏,一般是大寫字符,系統(tǒng)中一般默認(rèn)存在這樣的一些變量用于滿足系統(tǒng)運(yùn)行的需求秋忙。自定義環(huán)境變量示例:export OLDBOY="..."彩掐;老男孩推薦把環(huán)境變量放入/etc/bashrc。
b.局部變量(普通變量)
是編寫shell腳本最常用的變量灰追。
變量名=值堵幽,例如a=1;變量名必須是:數(shù)字弹澎、字母朴下、下劃線、不能是數(shù)字開頭苦蒿。
2殴胧、表達(dá)式
a、[]中括號表達(dá)式,中括號兩端必須有空格团滥。
用法:[ "a" = "b" ]&&echo1||echo 0
整數(shù)表達(dá)式與數(shù)學(xué)表達(dá)式之間的對應(yīng)關(guān)系:
? ? ? ?>? ? ? ? ? ? ? -gt
? ? ? >=? ? ? ? ? ? -ge
? ? ? <? ? ? ? ? ? ? ? -lt
? ? ?<=? ? ? ? ? ? ? -le
? ? ? ?=? ? ? ? ? ? ? -eq
? 不等于? ? ? ? ?-ne
1)整數(shù)表達(dá)式符竿屹,兩端必須要由空格
2)中括號里面兩端必須要由空格。
3)變量和比較的內(nèi)容灸姊,不需要加引號拱燃。
b、字符表達(dá)式:
-z 變量內(nèi)容長度為0時力惯,為真時(表達(dá)式正確)zero碗誉;
-n 變量內(nèi)容長度不為0時,為真(表達(dá)式正確)父晶。
c诗充、用法規(guī)則:
1.字符串要加雙引號
if判斷句語法:
if [ 表達(dá)式 ]
then
fi
d、書寫腳本的習(xí)慣:
1.以.sh結(jié)尾
2.腳本開頭第一行 #!/bin/bash 腳本內(nèi)容由誰解釋诱建。由于Linux中默認(rèn)是bash。所以也可以不寫這一行碟绑。
read命令:交互式讀取用戶輸入
參數(shù):
-t 指定等待輸入時間
-p 提醒
for 循環(huán)
for n in
do
? 執(zhí)行命令
done