shell编程基本语法
編寫shell腳本的時(shí)候,最前面要加上一行:#!/bin/bash,因?yàn)閘inux里面不僅僅只有bash一個(gè)解析器,還有其它的,它們之間的語(yǔ)法會(huì)有一些不同,所以最好加上這一句話,告訴系統(tǒng)要用這個(gè)解析器。
一.shell變量
shell變量和一些編程語(yǔ)言不同,一般shell的變量賦值的時(shí)候不用帶“$”,而使用或者輸出的時(shí)候要帶“$”。加減乘除的時(shí)候要加兩層小括號(hào)。括號(hào)外面要有一個(gè)“$”,括號(hào)里面的變量可以不用“$”。需要注意的是,變量賦值,變量使用的時(shí)候不能有空格,否則會(huì)被解析成命令,報(bào)錯(cuò)無此命令。
例子:
結(jié)果如下圖:
二.shell變量表達(dá)式
例子:
結(jié)果如圖:
三.shell測(cè)試判斷test或[]
需要注意的是使用[]的時(shí)候必須要每個(gè)變量之間都要有空格,和左右中括號(hào)也要有空格,否則報(bào)錯(cuò)。
結(jié)果如圖:
四.shell條件分支結(jié)構(gòu)語(yǔ)句
1.單分支判斷語(yǔ)句
格式:if 條件 ; then 結(jié)果 fi ,最后面一定要有fi,在shell腳本里面,控制分支結(jié)構(gòu)結(jié)束都要和開頭的單詞相反,例如,if <–> fi,case <–> esac。
結(jié)果如圖:
2.雙分支判斷語(yǔ)句
結(jié)果如圖:
3.多分支判斷語(yǔ)句
多分支判斷有兩種,和C語(yǔ)言的一樣 if else if,case。只是形式上有一些不同。
結(jié)果如圖:
結(jié)果如圖:
五.shell循環(huán)語(yǔ)句
1.while語(yǔ)句
while語(yǔ)句是只要條件為真就執(zhí)行下面語(yǔ)句。
格式:
while 條件
do
語(yǔ)句
done
需要注意的是,這里的條件除了 while true 可以這樣寫,其它的條件都要用 test或者 []來判斷
2.until語(yǔ)句
until語(yǔ)句是只要條件為假就執(zhí)行下列語(yǔ)句
格式:
until 條件
do
語(yǔ)句
done
結(jié)果如圖:
3.for語(yǔ)句
格式:
for 變量 in 列表
do
語(yǔ)句
done
結(jié)果如圖:
六.shell函數(shù)
格式:
[function] funcName()
{
語(yǔ)句
[return 返回值]
}
返回值是可選的,如果沒有顯示return 則默認(rèn)返回最后一條語(yǔ)句執(zhí)行的結(jié)果。
Shell 函數(shù)返回值只能是整數(shù),一般用來表示函數(shù)執(zhí)行成功與否,0表示成功,其他值表示失敗。如果 return 其他數(shù)據(jù),比如一個(gè)字符串,往往會(huì)得到錯(cuò)誤提示:“numeric argument required”。
如果一定要讓函數(shù)返回字符串,那么可以先定義一個(gè)變量,用來接收函數(shù)的計(jì)算結(jié)果,腳本在需要的時(shí)候訪問這個(gè)變量來獲得函數(shù)返回值。
函數(shù)參數(shù)從$1到$n,$0 是文件名。
例子:
結(jié)果如圖:
返回字符串,報(bào)錯(cuò)
結(jié)果如圖:
轉(zhuǎn)載于:https://blog.51cto.com/12630492/2169881
總結(jié)
以上是生活随笔為你收集整理的shell编程基本语法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。