一. 條件測試:test [
命令test或[可以測試一個條件是否成立,如果測試結(jié)果為真,則該命令的Exit Status為0,如果測 試結(jié)果為假,則命令的Exit Status為1(注意與C語言的邏輯表示正好相反)。
二。if/then/elif/else/fi
和C語言類似,在Shell中用if、then、elif、else、fi這幾條命令實現(xiàn)分支控制。這種流程控制語
句本質(zhì)上也是由若干條Shell命令組成的,其實是三條命令,if [ -f ~/.bashrc ]是第一條,then . ~/.bashrc是第二條,fi是第三條。如 果兩條命令寫在同一行則需要用;號隔開,一行只寫一條命令就不需要寫;號了,另外,then后面有 換行,但這條命令沒寫完,Shell會自動續(xù)行,把下一行接在then后面當作一條命令處理。和[命令 一樣,要注意命令和各參數(shù)之間必須用空格隔開。if命令的參數(shù)組成一條子命令,如果該子命令的Exit Status為0(表示真),則執(zhí)行then后面的子命令,如果Exit Status非0(表示假),則執(zhí) 行elif、else或者fi后面的子命令。if后面的子命令通常是測試命令,但也可以是其它命 令。Shell腳本沒有{}括號,所以用fi表示if語句塊的結(jié)束
三.case命令可類比C語言的switch/case語句,esac表示case語句塊的結(jié)束。C語言的case只能匹配整型或字符型常量表達式,而Shell腳本的case可以匹配字符串和Wildcard,每個匹配分支可
以有若干 條命令,末尾必須以;;結(jié)束,執(zhí)行時找到第一個匹配的分支并執(zhí)行相應的命令,然后直
接跳 到esac之后,不需要像C語言一樣用break跳出。
四.for/do/done
五.5. while/do/done
while的用法和C語言類似
六.函數(shù)
和C語言類似,Shell中也有函數(shù)的概念,但是函數(shù)定義中沒有返回值也沒有參數(shù)列表。例如:
注意函數(shù)體的左花括號{和后面的命令之間必須有空格或換行,如果將最后一條命令和右花括
號}寫 在同一行,命令末尾必須有;號。
在定義foo()函數(shù)時并不執(zhí)行函數(shù)體中的命令,就像定義變量一樣,只是給foo這個名字一個定
義, 到后面調(diào)用foo函數(shù)的時候(注意Shell中的函數(shù)調(diào)用不寫括號)才執(zhí)行函數(shù)體中的命令。
Shell腳本中的函數(shù)必須先定義后調(diào)用,一般把函數(shù)定義都寫在腳本的前面,把函數(shù)調(diào)用和其它
命令寫在腳本 的最后(類似C語言中的main函數(shù),這才是整個腳本實際開始執(zhí)行命令的地方)。
Shell函數(shù)沒有參數(shù)列表并不表示不能傳參數(shù),事實上,函數(shù)就像是迷你腳本,調(diào)用函數(shù)時可以傳
任 意個參數(shù),在函數(shù)內(nèi)同樣是用$0、$1、$2等變量來提取參數(shù),函數(shù)中的位置參數(shù)相當于函數(shù)
的局部 變量,改變這些變量并不會影響函數(shù)外面的$0、$1、$2等變量。函數(shù)中可以用return
命令返回,如 果return后面跟一個數(shù)字則表示函數(shù)的Exit Status。
例如:
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
文章題目:shell腳本學習-語法篇-創(chuàng)新互聯(lián)
網(wǎng)站鏈接:http://jinyejixie.com/article28/csdsjp.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、品牌網(wǎng)站建設、商城網(wǎng)站、面包屑導航、營銷型網(wǎng)站建設、響應式網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容