shell的逻辑判断与表达式

shell中逻辑判断与表达式,可以用来判断文件的存在性,属性。
条件表达式在条件判断时候很有用。



Tables & Code Example
逻辑卷标表示意思
1.关于档案与目录的侦测逻辑卷标!
-f常用!侦测『档案』是否存在 eg: if [ -f filename ]
-d常用!侦测『目录』是否存在
-b侦测是否为一个『 block 档案』
-c侦测是否为一个『 character 档案』
-S侦测是否为一个『 socket 标签档案』
-L侦测是否为一个『 symbolic link 的档案』
-e侦测『某个东西』是否存在!
2.关于程序的逻辑卷标!
-G侦测是否由 GID 所执行的程序所拥有
-O侦测是否由 UID 所执行的程序所拥有
-p侦测是否为程序间传送信息的 name pipe 或是 FIFO
3.关于档案的属性侦测!
-r侦测是否为可读的属性
-w侦测是否为可以写入的属性
-x侦测是否为可执行的属性
-s侦测是否为『非空白档案』
-u侦测是否具有『 SUID 』的属性
-g侦测是否具有『 SGID 』的属性
-k侦测是否具有『 sticky bit 』的属性
4.两个档案之间的判断与比较 ;例如『 test file1 -nt file2 』
-nt第一个档案比第二个档案新
-ot第一个档案比第二个档案旧
-ef第一个档案与第二个档案为同一个档案 link之类的档案
5.逻辑的『和(and)』『或(or)』
&&逻辑的 AND 的意思
ll逻辑的 OR 的意思

比较有趣的应该算是 1, 3 这两种种类的判断,尤其是在建立一些 permission 相关的档案时,这个就更重要了!然后那个『两个档案之间的判断』也是挺有意思的!有空的话不妨去试一试去!还有,那个 && 及 || 这两个东西也是很重要的!接着下来,我们要来谈一谈运算符号啰!

#!/bin/sh    
myPath="/var/log/httpd/"  
myFile="/var /log/httpd/access.log"    #这里的-x 参数判断$myPath是否存在并且是否具有可执行权限  
if [ ! -x "$myPath"]; then
  mkdir "$myPath"  
fi    #这里的-d 参数判断$myPath是否存在  
if [ ! -d "$myPath"]; then
  mkdir "$myPath"  
fi    #这里的-f参数判断$myFile是否存在  
if [ ! -f "$myFile" ]; then
  touch "$myFile"  
fi    #其他参数还有-n,-n是判断一个变量是否是否有值  
if [ ! -n "$myVar" ]; then
  echo "$myVar is empty"
  exit 0  
fi    #两个变量判断是否相等  
if [ "$var1" = "$var2" ]; then
  echo '$var1 eq $var2'  
else
  echo '$var1 not eq $var2'  
fi  


运算符:
 代表意义
=等于
!=不等于
<小于
>大于
-eq等于
-ne不等于
-lt小于
-gt大于
-le小于或等于
-ge大于或等于
-a双方都成立(and)
-o单方成立(or)
-z空字符串
-n非空字符串
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值