1. 聲明
腳本以 #!/bin/bash 開頭 並有執行權限
也能夠直接用 sh (腳本文件名) 不須要權限就可運行
2. 變量
定義變量: 變量=值
撤銷變量: unset 變量
聲明靜態變量: readonly 變量 (不可unset)
D=`date` D=$(date) 兩種方式把命令的結果賦值給變量
環境變量
vim /etc/profile 打開環境變量配置
TOMCAT_HOME=ZHANGYAGUANG 設置自定義的環境變量(1)
export TOMCAT_HOME 設置自定義的環境變量(2)
source /etc/profile 刷新文件
echo $TOMCAT_HOME 調用
參數變量
$n n爲數字 10個以上用${10}
$* 全部參數 一個總體
$@ 全部參數 每一個參數區別對待
$# 參數的個數
預約義變量
$$ 當前的PID(進程號)
$! 後臺運行的最後的PID
$? 最後一次執行的狀態 0:成功 非0:失敗
3. 運算
A=$[5+6] 推薦
B=$((5+6))
C=`expr 10 + 1`
D=`expr $1 + $2` 調用命令行的參數
4. 條件判斷
整數比較 文件權限 文件類型
例: [ "ok" = "ok" ] [ -r /root/shell/aa.txt ] [ -e /root/shell/aa.txt ]
= 字符串比較 -r 有讀的權限 -f 文件存在而且是一個常規文件(隱藏文件)
-lt 小於 -w 有寫 -e 文件存在
-le 小於等於 -x 有執行 -d 文件存在而且是一個目錄
-eq 等於
-gt 大於
-ge 大於等於
-ne 不等於
5. if case for while
注: 空格 和 $ 符號不可缺乏
if:
if [ $1x == "ab"x ]; then
echo "you had enter ab"
elif [ $1x == "cd"x ]; then
echo "you had enter cd"
else
echo "you had enter unexpected word"
fi
case:
case $1 in
"1")
echo "週一"
;;
"2")
echo "週二"
;;
*)
echo "全天"
;;
esac
for:
for i in "$@"
do
echo "for遍歷= $i"
done
SUN=0
for((i=1;i<=100;i++))
do
SUN=$[$SUN+$i]
done
echo $SUN
while:
SUM=0
i=0
while [ $i -le $1 ]
do
SUM=$[$i+$SUM]
i=$[$i+1]
done
echo $SUMshell
6. read
語法: read(選項)(參數)
選項 -p 指定讀取時的提示符
-t 指定讀取時的等待時間,超時就不等待了
例: read -t 5 -p "輸入一個數=" NUM1
echo "你輸入的數字是= $NUM1"vim
7. 函數
basename (路徑) (後綴) 取文件名
dirname (路徑) 取路徑
自定義函數
function getNum(){
SUM=$[$i+$y]
echo $SUM
return $SUM
}
read -p "i:" i
read -p "y:" y
X=$(getNum $i $y)
echo "X:$X"bash
echo 輸出
# 單行註釋
:<<! 內容 ! 多行註釋函數