Linux中bash編程

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  條件語句

if [ 條件判斷式 ];then
    程序
fi
or  
if [ 條件判斷式 ]
    then
        程序
fi

判斷登陸用戶是否爲root用戶:

#!/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條件語句

if [ 條件判斷式 ]
    then
         ...
    else
        ...
fi

判斷nginx 是否在運行 (最好不用包含nginx做爲文件名)

#!/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語句

if []
    then 
elif []
    then
...
else 
   ...
if
相關文章
相關標籤/搜索