if [條件判斷式];then
程式
fi
if [條件判斷式]
then
程式
fi
[[email protected] ~]# df -h
#檢視一下伺服器的分割區狀況
檔案系統 容量 已用 可用 已用% %掛載點
/dev/sda3 20G 1.8G 17G 10% /
tmpfs 306M 0 306M 0% /dev/shm
/dev/sda1 194M 26M 158M 15% /boot
/dev/srO 3.5G 3.5G 0100% /mnt/cdrom
[[email protected] ~]# vi sh/if1.sh
#!/bin/bash
#統計根分割區的使用率
rate=$(df -h | grep "/dev/sda3" | awk '{print $5}' | cut -d"%"-f1)
#把根分割區使用率作為變數值賦予變數rate
if [$rate -ge 80 】
#判斷rate的值,如果大於等於80,則執行then程式
then
echo 'Warning! /dev/sda3 is full!!"
#列印警告資訊。在實際工作中,也可以向管理員傳送郵件
fi
[[email protected] ~]# df -h | grep "/dev/sda3" |awk'{print $5}'|cut -d"%" -f1 10
提取出根分割區的使用率後,判斷這個數位是否大於等於 80,如果大於等於 80 則報警。至於報警資訊,我們在指令碼中直接輸出到螢幕上。在實際工作中,因為伺服器螢幕並不是 24 小時有人值守的,所以也可以給管理員傳送郵件,用於報警。
if [條件判斷式]
then
當條件判斷式成立時,執行的程式
else
當條件判斷式不成立時,執行的另一個程式
fi
[[email protected] ~]# [-d /root/sh] && echo "yes" || echo "no"
#第一條判斷命令如果正確執行,則列印"yes"; 否則列印"no"
yes
#!/bin/bash
#判斷輸入的檔案是否是一個目錄
read -t 30 -p "Please input a directory:" dir #read接受鍵盤的輸入,並存入dir變數
if[-d $dir]
#測試$dir中的內容是否是一個目錄
then
echo "yes"
#如果是一個目錄,則輸出yes
else
echo "no"
#如果不是一個目錄,則輸出no
fi
if[條件判斷式1]
then
當條件判斷式1成立時,執行程式1
elif [條件判斷式2]
then
當條件判斷式2成立時,執行程式2
…省略更多條件...
else
當所有條件都不成立時,最後執行此程式、
fi
[[email protected] ~]#vi sh/if-elif.sh
#!/bin/bash
#判斷使用者輸入的是什麼檔案
read -p "Please input a filename:" file
#接收鍵盤的輸入,並賦予變數file
if[-z "$file"]
#判斷file變數是否為空
then
echo "Error,please input a filename"
#如果為空,則執行程式1,也就是輸出報錯資訊、
exit 1
#退出程式,並定義返回值為1 (把返回值賦予變數$?)
elif[!-e "$file"]
#判斷file的值是否存在
then
echo 'Your input is not a file!"
#如果不存在,則執行程式2
exit 2
#退出程式,並定義返回值為2
elif[-f "$file"]
#判斷file的值是否為普通檔案
then
echo "$file is a regulare file!"
#如果是普通檔案,則執行程式3
elif[-d"$file"]
#判斷file的值是否為目錄檔案
then
echo "$file is a directory!"
#如果是目錄檔案,則執行程式4
else
echo is an other file!"
#如果以上判斷都不是,則執行程式5
fi
[[email protected] ~]# chmod 755 sh/if-elif.sh
#賦予執行許可權
[[email protected] ~]# sh/if-elif.sh
#執行指令碼
Please input a filename:
#沒有任何輸入
Error,please input a filename
#報錯資訊是指令碼中自己定義的
[[email protected] ~]# echo $?
1
#變數$?的返回值是我們自己定義的1
[[email protected] ~]# sh/if-elif.sh
Please input a filename: jkgeia
#隨便輸入不是檔案的字串
Your input is not a file!
#報錯資訊是自己定義的
[[email protected] ~]# echo $?
2
#變數$?的返回值是我們自己定義的2