bash編程也叫shell編程 預定義變數 $? 最後一次執行的命令的返回狀態。如果這個變數的值為0,證明上一個命令正確的執行;如果這個變數返回的值非0(具體是那個數,有命令自己來決定),則證明上一個命令執行不正確。 $$當前進程的進程號(PID) $!後臺運行的最後一個進程的進程號(PID) 運算... ...
bash編程也叫shell編程
預定義變數
$? 最後一次執行的命令的返回狀態。如果這個變數的值為0,證明上一個命令正確的執行;如果這個變數返回的值非0(具體是那個數,有命令自己來決定),則證明上一個命令執行不正確。
$$當前進程的進程號(PID)
$!後臺運行的最後一個進程的進程號(PID)
運算符
declare 聲名變數的類型
declare [+/-][選項] 變數名
- 給變數設定類型屬性
+ 取消變數的類型屬性
-i 將變數聲名為整數型
-x將變數什申明為環境變數
-p 顯示指定變數的被聲名的類型
舉例:
a=1 b=2 declare -i c = $a+$b c=$(($a+$b))
註意用雙小括弧,因為Linux中認為一切皆為字元。
如果不加()當成一個命令,shell腳本中Linux命令在 $() 中運行,當然可以直接寫命令,如果則一些引用命令時 就要 $()
單分支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