这里是普通文章模块栏目内容页
linux scripts 条件判断一:if then fi 的方式(转)

条件判断一:if then fi 的方式,相信才开始接触linux下面条件判断的人对这些概念都比较陌生,那么当我们开始接触它的时候,那么我们进入它的世界就不远了,加油...ing   笨人在这里希望大家好好研究下linux下面的脚本编写,多多益善啊   呵呵

      我们要了解条件判断,首先就需要知晓它的语法,我们就来学习一下语法:

if [ 条件判断一 ] && (||) [ 条件判断二 ]; then    

<== if 是起始的意思,后面可以接若干个判断式,使用 && 或 || 

执行内容程序 

elif [ 条件判断三 ] && (||) [ 条件判断四 ]; then    

<==第二段的判断,如果第一段(也就是if那段)没有符合就来此搜寻条件 

执行第二段内容程序 

else                                           

<==当前两段都不符合时,就以这段内容来执行! 

执行第三段内容程序 

fi                                           

<==结束 if then 的条件判断!新手需要注意的一点,别忘记了结束标识。

以下是常犯下精彩犯的错误,我们需要来加强说明一下:

1:在 [ ] 当中,只能有一个判别式;

2:在 [ ] 与 [ ] 当中,可以使用 && 或 || 来组织判别式;

3:每一个独立的组件之间『都需要有空格键来隔开』! 

了解了一些简单的理论,那么我们就来编写一个简单的判别式试试

我们需要写一个脚本,提示用户输入指定的内容,才能显示正确的结果,否则提示错误!

vi benren.sh

#!/bin/bash 

echo I love Linux

read test

if    [ "$test" = "yes" ]; then       # \\z这里为判别条件,假如我们输入的内容为yes

       echo "me too"                   #   \\这里为条件执行程序,如果满足上面的条件就输出me too

else                                           # \\ 这里为以上的条件不成立就执行下面的输出

       echo "sorry Stop!"             #   \\ 这里为条件不成立执行的程序,输出sorry Stop!

fi                                                 # \\这里为结束标记

由以上的脚本,我们运行一下看看

sh benren.sh

I love Linux

yes          \\这里我们输入的是yes

me too        \\ 这里就显示出了me too

假设我们输入的是其他内容呢?

sh benren.sh

I love Linux

NO                \\这里为我们输入的其他内容

sorry Stop! \\这里就为错误输出提示

综上所述,我们来完成一次大的脚本编写

我们这个脚本的目的是完成检测FTP WWW SSH POP3 端口打开没?

首先建立一个名为www.sh的脚本文件

vi www.sh

#!/bin/bash

# 1.FTP

echo "ftp"

ftp='netstat -an|grep LIST|grep :21'

if [ "$ftp" != "" ]; then

echo "ftp is runing.."

else

echo "ftp down.."

fi

#2.www

echo "www"

www='netstat -an|grep LIST|grep :80'

if [ "$www" != "" ]; then

echo "www is runing.."

else

echo "www down.."

fi

#3. SSH   POP3              \\这里用的是&&和elif判断语句

echo "SSH POP3"

SSH='netstat -an|grep LIST|grep :22'

POP3='netstat -an|grep LIST|grep :25'

if [ "$SSH" != "" ] && [ "$POP3" != "" ]; then

echo "SSH POP3 is runing.."

elif [ "$SSH" = ""] && [ "$POP3" != "" ]; then

echo "SSH is down and POP3 is runing"

elif [ "$SSH" != "" ] && [ "pop3" = "" ]; then

echo "SSH is runing and POP3 is down"

fi

保存退出

sh www.sh

这样如果我们运行www.sh这个脚本就能知道那些端口打开没有啦

很简单吧