这一节主要介绍shell scripts 条件判断式if...then
简单的条件判断式
if [ 条件判断式 ]; then
当条件判断式成立时,可以进行的指令工作内容;
fi <==将 if 反过来写,就成为 fi 啦!结束 if 之意!
&& 代表and
|| 代表 or
所以,在使用中括号的判断式中, && 及 || 就与指令下达的状态不同了。举例来说:
[ "${yn}" == "Y" -o "${yn}" == "y" ] 上式可替换为 [ "${yn}" == "Y" ] || [ "${yn}" == "y" ]
示例:交互式脚本经常遇到输入Y/N
read -p "Please input (Y/N): " yn # 提示信息输入Y/N
[ "${yn}" == "Y" ] || [ "${yn}" == "y" ] # if条件判断输入的值是"Y"或者"y",满足条件则输出"OK",并退出程序
[ "${yn}" == "N" ] || [ "${yn}" == "n" ] # 同上
执行结果如下:
多重、复杂条件判断式
[ "$1" != "hello" ] # 如果第一个参数($1)不是hello,提示信息
elif 多重判断(类似于java中的else if)
[ "$#" -lt 2 ] # 判断参数个数($#)是否小于(-lt:less than)2,
执行结果如下:
在linux中我们一般使用netstat -tuln来探测正在监听的网络进程,下面是一些常见的端口号对应的服务
80: WWW
22: ssh
21: ftp
25: mail
111: RPC(远端程序调用)
631: CUPS(打印服务功能)
假设我的主机有兴趣要侦测的是比较常见的 port 21, 22, 25及 80 时,那我如何通过 netstat 去侦测我的主机是否有打开这四个主要的网络服务端口呢?由于每个服务的关键字都是接在冒号“ : ”后面, 所以可以借由撷取类似“ :80 ”来侦测的!那我就可以简单的这样去写这个程序喔:
执行结果:
閱讀更多 Python小飛豬 的文章