bash編程也叫shell編程nginx
預約義變量
$? 最後一次執行的命令的返回狀態。若是這個變量的值爲0,證實上一個命令正確的執行;若是這個變量返回的值非0(具體是那個數,有命令本身來決定),則證實上一個命令執行不正確。
$$當前進程的進程號(PID)
$!後臺運行的最後一個進程的進程號(PID)
運算符
declare 聲名變量的類型
declare [+/-][選項] 變量名
- 給變量設定類型屬性
+ 取消變量的類型屬性
-i 將變量聲名爲整數型
-x將變量什申明爲環境變量
-p 顯示指定變量的被聲名的類型shell
舉例:編程
a=1 b=2 declare -i c = $a+$b c=$(($a+$b)) bash
注意用雙小括號,由於Linux中認爲一切皆爲字符。spa
若是不加()當成一個命令,shell腳本中Linux命令在 $() 中運行,固然能夠直接寫命令,若是則一些引用命令時 就要 $()rest
if [ 條件判斷式 ];then 程序 fi or if [ 條件判斷式 ] then 程序 fi
#!/bin/bash #grep 獲取行通配符 #cut 獲取列統配符,以 = 分割 2 獲取第二列 login_name=$(env | grep LOGNAME | cut -d "=" -f 2) #echo $login_name if [ "$login_name" != "root" ] then echo 'isnot root' fi
#!/bin/bash #df -h 任性話顯示磁盤的利用率 #awk 獲取第五列 #cut 對字符用 % 進行分割 獲取第一列值 result=$( df -h | grep sda1 | awk '{print $5}' | cut -d % -f 1) if [ "$result" -lt '90' ] then echo 'the root dir is not full' fi
if [ 條件判斷式 ] then ... else ... fi
#!/bin/bash result=$(ps aux | grep nginx | grep -v grep) if [ -n "$result" ] then echo "$(date) nginx is ok !" else echo "$(date) nginx is not ok !" sudo /etc/init.d/nginx start &>/dev/null echo "$(date) restart nginx !!" fi
if [] then elif [] then ... else ... if