shell if 命令参数和比较字符写法

-b    当file存在并且是块文件时返回真
-c    当file存在并且是字符文件时返回真
-d    当pathname存在并且是一个目录时返回真
-e    当pathname指定的文件或目录存在时返回真
-f     当file存在并且是正规文件时返回真
-g     当由pathname指定的文件或目录存在并且设置了SGID位时返回为真
-h     当file存在并且是符号链接文件时返回真,该选项在一些老系统上无效
-k     当由pathname指定的文件或目录存在并且设置了“粘滞”位时返回真
-p     当file存在并且是命令管道时返回为真
-r     当由pathname指定的文件或目录存在并且可读时返回为真
-s     当file存在文件大小大于0时返回真
-u     当由pathname指定的文件或目录存在并且设置了SUID位时返回真
-w    当由pathname指定的文件或目录存在并且可执行时返回真。一个目录为了它的内容被访问必然是可执行的。
-o     当由pathname指定的文件或目录存在并且被子当前进程的有效用户ID所指定的用户拥有时返回真。


在shell编程中,常常会用if来判断条件,从而控制程序的流程分支。if语句是非常简单,跟其他语言差不多,不过,在shell中,要注意一些细节是很有必要的。

在这里,不给出if的基本语法格式,网上搜索下,很多的。这里给出个简单的例子:

  1. #! /bin/sh -  
  2.   
  3. name=`basename $0 .sh`  
  4.   
  5. if [ $# -ne 2 -a $# -ne 3 ]; then  
  6.         echo "Usage: $name value1 value2"  
  7.         echo "       $name value1 value2 value3 "  
  8.         exit 1  
  9. fi  
  10.   
  11. if [ $# -eq 2 ]; then  
  12.         echo "two args: $1, $2"  
  13. else  
  14.         echo "three args: $1 $2 $3"  
  15. fi  
  16.   
  17. if [ $# -eq 2 ]; then  
  18.         if [ $1 -gt $2 ]; then  
  19.                 echo " $1 > $2"  
  20.         elif [ $1 -lt $2 ]; then  
  21.                 echo " $1 < $2 "  
  22.         else  
  23.             echo "$1 = $2"  
  24.         fi  
  25. else  
  26.         if [ $1 -ge $2 -a $1 -ge $3 ]; then  
  27.                 echo "$1 >=$2 , $1 >=$3"  
  28.         elif [ $1 -ge $2 -a $1 -lt $3 ]; then  
  29.                 echo "$1 >=$2 ,$1 < $3"  
  30.         elif [ $1 -lt $2 -a $1 -ge $3 ]; then  
  31.                 echo "$1 < $2, $1 >= $3"  
  32.         else  
  33.                 echo "$1 < $2, $1 < $3"  
  34.         fi  
  35. fi  
  36. exit 0  

将上面的内容保存为文件保存为if.sh,并给文件赋予可执行权限。然后通过调用该shell。该shell脚本主要是通过if语句,对不同的参数进行判断输出。上面的脚本基本囊括了常用的if then if else  if elif 。if语句中,主要需要注意以下几点:

1、if 与[ 之间必须有空格

2、[ ]与判断条件之间也必须有空格

3、]与; 之间不能有空格



Shell脚本比较运算符及逻辑运算符小结

1、数值

格式:

test "num1" opr "num2"

[ "num1" opr "num2" ]

opr 取值:

相等:-eq

不等:-ne

大于:-gt

小于:-lt  【l是字母L的小写】

小于等于:-le

大于等于:-ge

2、字符串

格式:

[ str1 opr str2]

[ opr str ]

opr取值:

相等:=

不等:!=

空串:-z

非空串:-n

3、文件

格式:

[ opr file ]

opr取值:

目录: -d

文件: -f

链接: -L

可读: -r

可写: -w

可执行: -x

文件非空: -s

4、逻辑运算符

逻辑与: -a          格式: [ condition1 -a condition2 ]

逻辑或: -o          格式: [ condition1 -o condition2 ]

逻辑否: !             格式: [ ! condition ]



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值