
1.注釋
#:注釋單行
2.標(biāo)識符命名規(guī)范
硬性規(guī)范:
1>標(biāo)識符只能由數(shù)字,下劃線,字母構(gòu)成
2>不能由數(shù)字開頭
3>不能與shell關(guān)鍵字相同
建議:
1>禁止使用漢語拼音,多查查字典
2>使用駝峰命名法,或者使用下劃線連接
3>見名知義
3.變量的定義
1>變量一旦定義出來,就必須給他賦值
2>變量定義時,=號左右不要有空格
3>變量是可以重新賦值
4>如果變量定義成readonly,代表著這個變量不能被再次賦值
注意:shell腳本變量在沒有定義的前提下,直接使用,這個變量默認(rèn)為空
4.變量的使用
1>變量在使用時要在變量前加$
2>在刪除變量時,不需要加$
5.echo命令
1>用來輸出變量的值
2>會自動換行
3>如果想對\c,這種特殊字符進(jìn)行轉(zhuǎn)義:
(1)如果是第一種運(yùn)行方式:./1.sh,必須要對echo開啟轉(zhuǎn)義echo -e
value="hello world"
echo -e "${value}\c"
echo "ni hao"
(2)如果是第二種運(yùn)行方式:sh 1.sh,則不需要對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>刪除變量之后,再使用這個變量的時候默認(rèn)為空
3>如果這個變量是只讀變量,是不能刪除這個變量的
8.字符串相關(guān)處理方法
1>求字符串長度
value="hello world"
length=${#value}
echo ${length}
2>拼接字符串
value="hello world"
value1="ni hao"
value2="${value}? ? ? ${value1}"
echo ${value2}
注意:拼接時,中間空出的空格,無論空出多少,只會默認(rèn)空出一格
3>截取字符串
value="hello world"
value1=${value:6:5}
echo ${value1}
注意:字符串從位置0開始,截取字符串時,要說明截取的起始位置和截取長度
9.echo輸出加"",'',不加任何東西
1>加'',如果在''號里面輸出變量,會把變量當(dāng)成字符來處理
2>不加任何東西,程序可讀性變低,分不清哪些是命令,哪些是變量
3>加了"",會避免上面的問題
注意:建議使用雙引號""
10.printf(格式化輸出命令)
1>不用像echo命令那么那么復(fù)雜
2>按照一定的格式輸出
3>輸出雙引號里面的東西
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 "請輸入一個數(shù):"
read num
printf "請?jiān)俅屋斎胍粋€數(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語句的使用
1>
if [ 條件 ]
then
語句1
fi
2>
if [ 條件 ]
then
語句1
else
語句2
fi
3>
if [ 條件 ]
then
語句1
elif [ 條件 ]
then
語句2
else
語句3
fi
注意點(diǎn):
1>如果有else,else只能放在最后面
2>if語句是可以嵌套的,最多3層
14.${},$(),$(())的區(qū)別
15.let命令
1>計(jì)算整數(shù)
2>除了可以運(yùn)算+ - * / %,還可以運(yùn)算+=? -=? /=? *=? %=
3>還可以計(jì)算++ --
4>運(yùn)算時不需要添加$
num1=3
let num2=++num1? #num1=num1+1,num2=num1
let num2=num1++? #num2=num1,num1=num1+1
明天接著學(xué)習(xí)更新持續(xù)進(jìn)行...