1、變量的規(guī)則
????????變量名=值
? ? ? ? ?????1: 等號(hào)兩邊不能有空格?
? ? ? ? ? ? ?2:定義特殊的變量需要用單引號(hào)或者雙引號(hào)結(jié)合
? ? ? ? ? ? ?3:定義linux命令需要用反單引號(hào)
? ? ? ? ?區(qū)分單引號(hào)和雙引號(hào)的不同和相同點(diǎn):
? ??????????????雙引號(hào)中有$變量名,輸出的是變量名對應(yīng)的變量值
????????????????單引號(hào)中有$變量名,輸出的是字符串
?2、腳本的起始行格式
? ????????第一行必須寫? ?:? # !/bin/bash
?3、腳本的命名格式 :
? ? ? ? ? ? 腳本名稱使用.sh結(jié)尾
4、腳本輸入輸出格式 :
? ? ? ? ? ? 輸入 :read -p"描述"
? ? ? ? ? ? 輸出 :echo? $變量名
5、 腳本的調(diào)用
? ? ? ? ? ?./腳本名.sh
? ? ? ? ? ?sh? 腳本名.sh
? 6、參數(shù)傳遞
? ? ? ? ? ? $1:接收第一個(gè)參數(shù)~~$n
? ? ? ? ? ? $n: 文件名稱
????????????$@: 所有參數(shù) s
????????????$#: 參數(shù)個(gè)數(shù)? $0
??7、比較運(yùn)算符和邏輯運(yùn)算符
? ? ? ? ? ? 1、數(shù)字? :
? ??????????????????????????-eq 比較是否相等????????equal
? ? ? ? ? ? ? ? ? ? ? ? ? ?-ne 比較不相等? ? ? ? ? ? ?notequal
? ? ? ? ? ? ? ? ? ? ? ? ? ?-gt 比較大于 ???????????????? greater than
? ? ? ? ? ? ? ? ? ? ? ? ? ?-ge 比較大于等于 ???????? greaterequal
? ? ? ? ? ? ? ? ? ? ? ? ? ?-lt 比較小于? ? ? ? ? ? ? ? ? ? less than
? ? ? ? ? ? ? ? ? ? ? ? ? ?-le 比較小于等于? ? ? ? ? ? lessequal
? ? ? ????? 2、字符串? ? :
? ??????????????????????????==???? 比較是否相等
????????????????????????????!=????? 比較不相等
? ??????????????????????????加一操作????:????((i++))((i+=1))
? ??????????????????????????加n操作? ? ?:? ? ?s=$(($s+$i))s=$[$s+$i]((s=$s+$i))
? ? ? ? ? ? 3、邏輯運(yùn)算符? ?:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? -a? ? ? ? ?and? ? ? ? 邏輯與
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? -o? ? ? ? or? ? ? ? ? ? 邏輯或
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? !????????????
? ?8、if語句? ? :
? ??????????????????????if [ 條件 ]
? ? ? ? ? ? ? ? ? ? ? ? then
? ? ? ? ? ? ? ? ? ? ? ? 語句
????????????????????????else
????????????????????????語句
????????????????????????fi
? ?????????????????注意點(diǎn)????:
? ? ? ? ? ? ? ? ? ? ? ? ? ?1: if后面有空格,?
? ? ? ? ? ? ? ? ? ? ? ? ? ?2:條件兩邊有空格,?
? ? ? ? ? ? ? ? ? ? ? ? ? ?3:if條件里面存在變量,需要$,而且變量兩邊需? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ????????????????????????????????要雙引號(hào),?
? ? ? ? ? ? ? ? ? ? ? ? ? ?4:fi是結(jié)束標(biāo)識(shí)
? ??????????多條件語句格式;?
? ??????????????????????????????????????if [ 條件 ]
????????????????????????????????????????then
????????????????????????????????????????語句
????????????????????????????????????????elif [ 條件 ]
????????????????????????????????????????then
????????????????????????????????????????語句
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?......
????????????????????????????????????????else
????????????????????????????????????????語句
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? fi
? ??9、case規(guī)則
? ??????????????????格式:
? ??????????????????????????case $變量名 in
????????????????????????????"值")
????????????????????????????語句;;
????????????????????????????"值")
????????????????????????????語句;;
????????????????????????????.....
????????????????????????????esac
? ? ? ? ? ? ? ? ? ? ? 注意:
? ??????????????????????????????1:case這第一行以in結(jié)尾
? ??????????????????????????????2:值可以是字符串也可以是數(shù)字, 如果數(shù)字范圍[0-9]
? ??????????????????????????????3:結(jié)束語句;;
? ??????????????????????????????4:esac結(jié)束標(biāo)志
? ??10、For循環(huán)
? ? ? ? ? ? ????????格式? ?:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?for 變量 in 列表?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?do?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?語句?
????????????????????????????????done? ? ? ? ? ? ? ? ?
????11、While循環(huán)? ?
? ? ? ? ? ? ? ? ? ? 格式? ? :
? ??????????????????????????????while [條 件 ]
? ????????????????????????????? do
? ? ????????????????????????????語句
? ? ????????????????????????????done
? ??12、Shell腳本的函數(shù)
? ? ? ? ? ? ? ? ? ? 定義? ? :
? ??????????????????????????????函數(shù)名(){代碼 }
????????????????????????????????調(diào)用格式
????????????????????????????????函數(shù)名
? ? ? ? ? ? ? ? ? ? 注意????:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 函數(shù)必須要先定義在調(diào)用