Linux之shell scripts 学习(最重要部分)

这一节主要介绍shell scripts 条件判断式if...then

简单的条件判断式

if [ 条件判断式 ]; then

当条件判断式成立时,可以进行的指令工作内容;

fi <==将 if 反过来写,就成为 fi 啦!结束 if 之意!

&& 代表and

|| 代表 or

所以,在使用中括号的判断式中, && 及 || 就与指令下达的状态不同了。举例来说:

[ "${yn}" == "Y" -o "${yn}" == "y" ] 上式可替换为 [ "${yn}" == "Y" ] || [ "${yn}" == "y" ]

示例:交互式脚本经常遇到输入Y/N

Linux之shell scripts 学习(最重要部分)

Y/N交互式脚本

read -p "Please input (Y/N): " yn # 提示信息输入Y/N

[ "${yn}" == "Y" ] || [ "${yn}" == "y" ] # if条件判断输入的值是"Y"或者"y",满足条件则输出"OK",并退出程序

[ "${yn}" == "N" ] || [ "${yn}" == "n" ] # 同上

执行结果如下:

Linux之shell scripts 学习(最重要部分)

Y/N交互式脚本执行结果

多重、复杂条件判断式

Linux之shell scripts 学习(最重要部分)

if...then...elif..else

[ "$1" != "hello" ] # 如果第一个参数($1)不是hello,提示信息

elif 多重判断(类似于java中的else if)

[ "$#" -lt 2 ] # 判断参数个数($#)是否小于(-lt:less than)2,

执行结果如下:

Linux之shell scripts 学习(最重要部分)

if...then...elif..else执行结果

在linux中我们一般使用netstat -tuln来探测正在监听的网络进程,下面是一些常见的端口号对应的服务

80: WWW

22: ssh

21: ftp

25: mail

111: RPC(远端程序调用)

631: CUPS(打印服务功能)

假设我的主机有兴趣要侦测的是比较常见的 port 21, 22, 25及 80 时,那我如何通过 netstat 去侦测我的主机是否有打开这四个主要的网络服务端口呢?由于每个服务的关键字都是接在冒号“ : ”后面, 所以可以借由撷取类似“ :80 ”来侦测的!那我就可以简单的这样去写这个程序喔:

Linux之shell scripts 学习(最重要部分)

shell scripts探测网络监听端口

执行结果:

Linux之shell scripts 学习(最重要部分)

shell scripts探测网络监听端口脚本执行结果


分享到:


相關文章: