欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

shell腳本語言之if條件判斷語句實(shí)例詳解

 更新時(shí)間:2022年04月28日 10:28:56   作者:小鵬linux  
在寫shell腳本的時(shí)候條件判斷是最常用到的,尤其剛寫shell腳本的時(shí)候,一些高級命令語法不會使用,到處都是if,下面這篇文章主要給大家介紹了關(guān)于shell腳本語言之if條件判斷語句的相關(guān)資料,需要的朋友可以參考下

1.單分支if條件語句

then后面跟符合條件之后執(zhí)行的程序,可以放在[]之后,用;分隔。也可以換行寫入,

就不需要“;”了。

比如:

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

1.1舉例:判斷目錄是否存在,不存在則創(chuàng)建

#!/bin/bash
#date:2022-4-13
#描述:if單分支語句示例,判斷目錄是否存在
read -p "請輸入需要判斷的目錄:" name
if [ ! -d $name ]
    then
        echo "$name目錄不存在,正在創(chuàng)建..."
        mkdir -p $name
        echo "$name目錄創(chuàng)建完成."
fi
        echo "$name目錄已存在,正在退出..."

2.雙分支if條件語句

if   [  條件判斷式  ] 
    then
        條件成立時(shí),執(zhí)行的程序。 
    else
        條件不成立時(shí),執(zhí)行的另一個(gè)程序。 
fi

2.1舉例:監(jiān)聽并自動重啟apache服務(wù)腳本

在日常工作中,服務(wù)器上的服務(wù)經(jīng)常會宕機(jī)。如果我們對服務(wù)器監(jiān)控不好,就會造成服務(wù)器中服務(wù)宕機(jī)了,而管理員卻不 知道的情況。這是我們可以寫一個(gè)腳本來監(jiān)聽本機(jī)的服務(wù)。如果服務(wù)停止或宕機(jī)了,可以自動重啟這些服務(wù)。用apache舉例:

首先介紹端口掃描命令

nmap端口掃描命令,

格式:nmap -sT 域名或IP

子選項(xiàng):

        -s         掃描

        -T        掃描所有開啟的TCP端口 

nmap掃描后顯示的端口一定是存活的。

腳本要使用nmap命令,首先用yum -y install nmap安裝。

apache服務(wù)也是yum安裝。

[root@xiaopeng ~]# cat autostart.sh 
#!/bin/bash 
port=$(nmap -sT 192.168.22.222 | grep tcp | grep http | awk '{print $2}') 
if [ "$port" == "open" ] 
    then 
        echo "$(date) httpd is ok!" >> /tmp/autostart-acc.log 
    else 
        /etc/rc.d/init.d/httpd start &> /dev/nullecho "$(date) restart httpd!!" >> /tmp/autostart-err.log 
fi

(首先用nmap命令查看是否開啟apache并賦值給port。

然后進(jìn)行條件判斷。如果服務(wù)開啟,輸出當(dāng)前時(shí)間+httpd is ok 到/tmp/autostart-

acc.log。

如果變量port的值不是open,那么執(zhí)行else下操作。首先啟動apache服務(wù),將啟動后 信息輸出至位桶,然后在/tmp/autostart-err.log中記錄。在本次腳本中nmap命令使用的是

IP查找端口,但并未指DNS,所以會報(bào)DNS不存在的錯(cuò),但不影響結(jié)果。)

3.多分支if條件語句

if   [  條件判斷式1  ] 
    then
        當(dāng)條件判斷式1成立時(shí),執(zhí)行程序1。 
elif  [  條件判斷式2  ] 
    then
        當(dāng)條件判斷式2成立時(shí),執(zhí)行程序2。 
        ......(可加入更多條件) 
    else
        當(dāng)所有條件不成立時(shí),最后執(zhí)行此程序。 
fi

3.1舉例:判斷用戶輸入的是文件還是目錄

#!/bin/bash
#date:2022-4-13
#描述:判斷文件類型
read -p "請輸入一個(gè)文件:" file
if [ -z $file ]
    then
        echo    "錯(cuò)誤!輸入的文件為空."
elif [ ! -e $file ]
    then
        echo    "錯(cuò)誤!輸入的文件不存在."
elif [ -f $file ]
    then
        echo    "$file是一個(gè)普通文件"
elif [ -d $file ]
    then
        echo    "$file是一個(gè)目錄"
else
        echo    "$file是其他類型文件"
fi

4.case條件語句

多分支case條件語句

case  $變量名  in 
    “值1”) 
        如果$變量等于值1,則執(zhí)行程序1 
    ;; 
    “值2”) 
        如果$變量等于值2,則執(zhí)行程序2 
    ;; 
        ....省略... 
    *) 
        如果$變量的值不是以上值,則執(zhí)行此程序 
    ;; 
esac 

4.1舉例:創(chuàng)建啟動腳本,讓service命令管理apache

[root@xiaopeng htdocs]# vim /etc/init.d/apached
#!/bin/bash
# chkconfig: 2345 64 36         
# description: A very fast and reliable SQL database engine
httpd=/usr/local/apache2/bin/apachectl
case $1 in
start)
        $httpd start
        ;;
stop)
        $httpd stop
        ;;
restart)
        $0 stop                 
        sleep 0.05              
        $0 start
        ;;
configtest)                     
$httpd  -t
;;
*)
        echo "usage:$0 start|stop|restart|configtest."
        ;;
esac

4.2舉例:創(chuàng)建啟動腳本,讓service命令管理nginx

[root@xiaopeng conf]# vim  /etc/init.d/nginx
#!/bin/bash
#Author:liu
#chkconfig: 2345 99 33
#description: nginx server control tools
 
ngxc="/usr/local/nginx/sbin/nginx"
ngxc_fpm="/usr/local/php/sbin/php-fpm"
case "$1" in
    start)
        $ngxc -t &> /dev/null
        if [ $? -eq 0 ];then
                $ngxc
                $ngxc_fpm
                echo "nginx service start success!"
        else
                $ngxc -t
        fi
        ;;
    stop)
        $ngxc  -s  stop
        killall  php-fpm
        echo "nginx service stop success!"
        ;;
    restart)
        $0 stop
        $0 start
        ;;
    reload)
        $ngxc -t &> /dev/null
        if [ $? -eq 0 ];then
               $ngxc  -s  reload
                pkill  -HUP  php-fpm
                echo "reload nginx config success!"
        else
                $ngxc -t
        fi
        ;;
    *)
        echo "please input stop|start|restart|reload."
        exit 1
esac

總結(jié)

到此這篇關(guān)于shell腳本語言之if條件判斷語句的文章就介紹到這了,更多相關(guān)shell腳本if條件判斷語句內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Linux壓縮及解壓縮命令tar|zip|rar|xz操作方法

    Linux壓縮及解壓縮命令tar|zip|rar|xz操作方法

    不管Linux還是其他操作系統(tǒng),數(shù)據(jù)的壓縮和解壓縮操作是經(jīng)常用到的,在windows平臺文件的相關(guān)操作被傻瓜化了,到了Linux平臺讓好多小伙伴感覺有點(diǎn)束手無策,本文為大家講解Linux的常用壓縮包操作,格式包含tar.gz, .tgz, .tar.bz2, .zip, .rar, .tar.xz,感興趣的朋友一起看看吧
    2024-02-02
  • Linux查看日志文件寫入速度的4種方法詳解

    Linux查看日志文件寫入速度的4種方法詳解

    有時(shí),我們需要查看某個(gè)文件的增長速度,如日志文件,以此來感受系統(tǒng)的負(fù)載情況,因?yàn)橐话闱闆r下,日志寫入越快,說明系統(tǒng)負(fù)載越重。本文總結(jié)了Linux中查看日志增長速度的幾種方法,需要的可以參考一下
    2022-06-06
  • 學(xué)習(xí)linux常用命令(推薦)

    學(xué)習(xí)linux常用命令(推薦)

    本文給大家分享小編日常整理的有關(guān)linux常用命令,對大家今后的工作學(xué)習(xí)非常有幫助,對linux常用命令知識感興趣的朋友一起學(xué)習(xí)吧
    2016-11-11
  • Shell中獲取腳本所在目錄絕對路徑的方法

    Shell中獲取腳本所在目錄絕對路徑的方法

    這篇文章主要介紹了Shell中獲取腳本所在目錄絕對路徑的方法,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2015-01-01
  • linux Shell獲取某目錄下所有文件夾的名稱

    linux Shell獲取某目錄下所有文件夾的名稱

    這篇文章主要介紹了linux Shell獲取某目錄下所有文件夾的名稱,需要的朋友可以參考下
    2017-05-05
  • linux shell流程控制語句實(shí)例講解(if、for、while、case語句實(shí)例)

    linux shell流程控制語句實(shí)例講解(if、for、while、case語句實(shí)例)

    linux shell有一套自己的流程控制語句,其中包括條件語句(if),循環(huán)語句(for,while),選擇語句(case)。下面我將通過例子介紹下,各個(gè)語句使用方法
    2014-04-04
  • shell腳本學(xué)習(xí)指南[四](Arnold Robbins & Nelson H.F. Beebe著)

    shell腳本學(xué)習(xí)指南[四](Arnold Robbins & Nelson H

    這篇文章主要介紹了shell腳本學(xué)習(xí)指南[四](Arnold Robbins & Nelson H.F. Beebe著),需要的朋友可以參考下
    2014-02-02
  • Linux paste命令用法匯總

    Linux paste命令用法匯總

    paste命令是linux下的一個(gè)文件管理命令,paste命令可以把每個(gè)文件以列對列的方式,然后一列列地加以合并,也就是合并兩個(gè)文件,這篇文章主要介紹了Linux paste命令使用方法,感興趣的朋友一起看看吧
    2022-12-12
  • 零基礎(chǔ)入門篇之Linux及Arm-Linux程序開發(fā)筆記

    零基礎(chǔ)入門篇之Linux及Arm-Linux程序開發(fā)筆記

    這篇文章主要介紹了零基礎(chǔ)入門篇之Linux及Arm-Linux程序開發(fā)筆記,需要的朋友可以參考下
    2015-10-10
  • telnet 命令使用方法大全

    telnet 命令使用方法大全

    這篇文章主要介紹了telnet 命令使用方法大全,本文給大家介紹的非常想詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01

最新評論