1.注釋
#:注釋單行
2.標(biāo)識(shí)符命名規(guī)范
硬性規(guī)范:
1>標(biāo)識(shí)符只能由數(shù)字校焦,下劃線戒幔,字母構(gòu)成
2>不能由數(shù)字開頭
3>不能與shell關(guān)鍵字相同
建議:
1>禁止使用漢語(yǔ)拼音,多查查字典
2>使用駝峰命名法痊硕,或者使用下劃線連接
3>見名知義
3.變量的定義
1>變量一旦定義出來(lái),就必須給他賦值
2>變量定義時(shí),=號(hào)左右不要有空格
3>變量是可以重新賦值
4>如果變量定義成readonly盟萨,代表著這個(gè)變量不能被再次賦值
注意:shell腳本變量在沒有定義的前提下,直接使用了讨,這個(gè)變量默認(rèn)為空
4.變量的使用
1>變量在使用時(shí)要在變量前加$
2>在刪除變量時(shí)捻激,不需要加$
5.echo命令
1>用來(lái)輸出變量的值
2>會(huì)自動(dòng)換行
3>如果想對(duì)\c,這種特殊字符進(jìn)行轉(zhuǎn)義:
(1)如果是第一種運(yùn)行方式:./1.sh,必須要對(duì)echo開啟轉(zhuǎn)義echo -e
value="hello world"
echo -e "${value}\c"
echo "ni hao"
(2)如果是第二種運(yùn)行方式:sh 1.sh,則不需要對(duì)echo開啟轉(zhuǎn)義
value="hello world"
echo? "${value}\c"
echo "ni hao"
4>\c不換行,\n換行,\t相當(dāng)于tab鍵
6.變量使用加{}前计,不是加()
1>避免使用不存在的變量
2>增加程序的可讀性
7.unset刪除變量
1>刪除變量不需要加$
2>刪除變量之后胞谭,再使用這個(gè)變量的時(shí)候默認(rèn)為空
3>如果這個(gè)變量是只讀變量,是不能刪除這個(gè)變量的
8.字符串相關(guān)處理方法
1>求字符串長(zhǎng)度
value="hello world"
length=${#value}
echo ${length}
2>拼接字符串
value="hello world"
value1="ni hao"
value2="${value}? ? ? ${value1}"
echo ${value2}
注意:拼接時(shí)男杈,中間空出的空格丈屹,無(wú)論空出多少,只會(huì)默認(rèn)空出一格
3>截取字符串
value="hello world"
value1=${value:6:5}
echo ${value1}
注意:字符串從位置0開始伶棒,截取字符串時(shí)旺垒,要說明截取的起始位置和截取長(zhǎng)度
9.echo輸出加"",'',不加任何東西
1>加'',如果在''號(hào)里面輸出變量肤无,會(huì)把變量當(dāng)成字符來(lái)處理
2>不加任何東西先蒋,程序可讀性變低,分不清哪些是命令宛渐,哪些是變量
3>加了"",會(huì)避免上面的問題
注意:建議使用雙引號(hào)""
10.printf(格式化輸出命令)
1>不用像echo命令那么那么復(fù)雜
2>按照一定的格式輸出
3>輸出雙引號(hào)里面的東西
value="hello"
value1="world"
printf "value=%s\nvalue1=%s\n" "$value" "$value1"
%d:輸出十進(jìn)制整數(shù)
%s:輸出字符串
%c:輸出字符
%f:輸出帶小數(shù)點(diǎn)的數(shù)
注意:%d和%c輸出類型比較嚴(yán)謹(jǐn)
11.read命令
1>等待輸入的值竞漾,將值賦給read后面的變量
printf "請(qǐng)輸入一個(gè)數(shù):"
read num
printf "請(qǐng)?jiān)俅屋斎胍粋€(gè)數(shù):"
read num1
printf "num=%s\nnum1=%s\n" "$num" "$num1"
12.整數(shù)基本運(yùn)算符
1>算術(shù)運(yùn)算+ 、-窥翩、\*业岁、/、%
value1=1
value2=2
value3=`expr $value1 + $value2`
value4=`expr $value1 - $value2`
value5=`expr $value1 \* $value2`
value6=`expr $value1 / $value2`
value7=`expr $value1 % $value2`
注意:$()和``代表取出數(shù)據(jù)的結(jié)果集
2>關(guān)系運(yùn)算符\>寇蚊、\>=笔时、\<、\<=幔荒、\=糊闽、\!=
value1=12
value2=123
result1=`expr $value1 \>= $value2`
result2=`expr $value1 \== $value2`
result3=`expr $value1 != $value2`
echo $result1
echo $result2
echo $result3
注意點(diǎn):\=、\!=爹梁,比較特殊右犹,看編譯器的支持,
3>如果數(shù)字關(guān)系運(yùn)算符與[]連用姚垃,使用下面的方式比較
-eq:
-ne:
-gt:
-lt:
-ge:
-le:
eq:equal
n:not
g:greater
l:less
t:than
4>邏輯運(yùn)算符
&&:而且
||:或者
13.if語(yǔ)句的使用
1>
if [ 條件 ]
then
語(yǔ)句1
fi
2>
if [ 條件 ]
then
語(yǔ)句1
else
語(yǔ)句2
fi
3>
if [ 條件 ]
then
語(yǔ)句1
elif [ 條件 ]
then
語(yǔ)句2
else
語(yǔ)句3
fi
注意點(diǎn):
1>如果有else念链,else只能放在最后面
2>if語(yǔ)句是可以嵌套的,最多3層
14.${},$(),$(())的區(qū)別
15.let命令
1>計(jì)算整數(shù)
2>除了可以運(yùn)算+ - * / %,還可以運(yùn)算+=? -=? /=? *=? %=
3>還可以計(jì)算++ --
4>運(yùn)算時(shí)不需要添加$
num1=3
let num2=++num1? #num1=num1+1,num2=num1
let num2=num1++? #num2=num1,num1=num1+1
明天接著學(xué)習(xí)更新持續(xù)進(jìn)行...