【shell脚本中的逻辑判断】
如果你学过C或者其他语言,相信你不会对if 陌生,在shell脚本中我们同样可以使用 if逻辑判断。在shell中if判断的基本语法为: 1)不带else if 判断语句;then command fi在if1.sh 中出现了((a<60))这样的形式,这是shell脚本中特有的格式,用一个小括号或者不
用都会报错,请记住这个格式,即可。执行结果为:2)带有else
if 判断语句;then command else command fi执行结果为:
3)带有elif
if 判断语句一;then command elif 判断语句二;then command else command fi这里的&&表示“并且”的意思,当然你也可以使用|| 表示“或者”,执行结果:
以上只是简单的介绍了if语句的结构。在判断数值大小除了可以用”(())”的形式外,还可以
使用”[]”。但是就不能使用>,<,=这样的符号了,要使用-lt(小于),-gt(大于),-le (小 于等于),-ge (大于等于),-eq (等于),-ne (不等于)。再看看if中使用&&和||的情况。
shell 脚本中if还经常判断关于档案属性,比如判断是普通文件还是目录,判断文件是否有
读写执行权限等。常用的也就几个选项: -e :判断文件或目录是否存在 -d :判断是不是目录,并是否存在 -f :判断是否是普通文件,并存在 -r :判断文档是否有读权限 -w :判断是否有写权限 -x :判断是否可执行 使用if判断时,具体格式为:if[-efilename];then在shell 脚本中,除了用if来判断逻辑外,还有一种常用的方式,那就是case了。具体
格式为: case 变量in value1) command ;; value2) command ;; value3) command ;; *) command ;; esac 上面的结构中,不限制value的个数,*则代表除了上面的value外的其他值。下面笔者写一 个判断输入数值是奇数或者偶数的脚本。$a的值或为1或为0,执行结果为:
case脚本常用于编写系统服务的启动脚本,例如/etc/init.d/iptables中就用到了,你不妨去查
看一下。