if雙分支執行流程,首先對if後面的條件進行判斷,若條件成立,則執行then後面的命令序列,執行完後轉到fi結束。若條件不成立,則執行else後面的命令序列,然後轉到fi結束,繼續執行後續命令。
if [ 條件判斷 ]
then
commands
else
commands
fi例1:測試主機存活性,並說明存活狀態
#!
/bin/bash
#date 2020-2
-24#描述:測試主機存活狀態
read -p "請輸入乙個ip:" ip
ping -c 1 $ip &
>
/dev/
null
if[ $?
-eq 0
]then
echo "ip主機存活"
else
echo "ip主機未存活,請盡快檢視主機情況"
fi
執行結果:
[root@linus ~
]# sh 4.sh
請輸入乙個ip:
192.168
.1.123
ip主機存活
例2:測試服務執行狀況,並說明執行狀態
#!
/bin/bash
#date 2020-2
-24#描述:測試httpd服務狀態
echo "httpd已經執行"
else
echo "httpd沒有執行,應該是服務錯誤或者沒有安裝
,請盡快檢視"
fi
執行結果:
[root@linus ~
]# sh 5.sh
httpd已經執行
例3:判斷指定的某個使用者是否存在,若存在則顯示提示資訊並跳過,否則就建立。
#!
/bin/bash
#date 2020-2
-24#描述:判斷指定使用者是否存在,不存在則建立
read -p "請輸入使用者名稱:" name
read -p "請輸入使用者密碼:" passwd
cut -d:
-f1 /etc/passwd | grep "\<$name\>"
&>
/dev/
null
if[ $?
-eq 0
]then
echo "使用者$name已存在,不再建立"
else
echo "使用者$name不存在,正在建立"
useradd $name &
>
/dev/
null
echo "$name:$passwd"
| chpasswd &
>
/dev/
null
if[ $?
-eq 0
] then
echo "使用者$name密碼建立成功"
else
echo "使用者$name密碼建立失敗"
fifi
執行結果:
[root@linus ~
]# sh 7.sh
請輸入使用者名稱:create
請輸入使用者密碼:
123.com
使用者create不存在,正在建立
使用者create密碼建立成功
例4:每5分鐘監控一次mysql服務執行狀態,把服務錯誤資訊寫入到/var/log/mysql.log檔案中。
#!
/bin/bash
#date 2020-2
-24#描述:每五分鐘監控一次mysql執行狀態,並把錯誤資訊寫入日
志pgrep -x mysqld &
>
/dev/
null
if[ $?
-ne 0
]then
echo "$(date),mysql服務已宕機"
>>
/var
/log/mysql.log
else
echo "mysql正在執行"
fiecho "5 * * * * sh /root/8.sh"
>>
/var
/spool/cron/root
執行結果:
[root@linus ~
]# sh 8.sh
[root@linus ~
]# cat /
var/log/mysql.log
2023年 02月 25日 星期二 01:29
:07cst,mysql服務已宕機
shell指令碼程式設計 if分支語句 分支結構
使用者的資訊會寫到 etc passwd 同時會生成此使用者名稱命名的家目錄 在 home 建立 從鍵盤讀取使用者輸入的密碼資訊,驗證輸入的密碼是否為123456 如果輸入正確,顯示密碼正確,如果錯誤,顯示密碼錯誤。ssh ip位址 vim passwd.sh bin bash read p 請輸入...
shell指令碼程式設計 分支結構if分支語句,多分支
1.5 shell指令碼程式設計 分支結構if分支語句,多分支 使用者的資訊會寫到 etc passwd 同時會生成以此使用者名稱命名的家且錄 在 home建立 從鍵盤讀取使用者輸入的密碼資訊,驗證輸入的密碼是否為123456,如果輸入正確,顯示密碼正確,如果錯誤,顯示密碼錯誤。bin bash r...
shell指令碼 if單分支語句簡單案例
if單分支流程 直接對if後面的條件進行判斷,若成立,執行then下面的命令序列,然後fi結束。若條件不成立,則直接轉到fi結束,執行後續命令。if 條件判斷 then commandsfi或 if 條件判斷 then commands fi案例一 判斷目錄是否存在,不存在則建立 if dir.sh...