Linux记录31-5.30~5.32 if 判断

 

基本格式:

if [    ]

then

         ...........

elif [    ]

then

         ............

else

         ............

fi

注意 if语句 的空格,不然很容易报错)  -->    if   [   $a   -gt   $b   ]

 

 

 

逻辑判断表达式:

-g于 >

-l于 <

-eq  等于 ==

-ge  大于等于 >=

-le  小于等于 <=

-ne  不等于 !=

 

&&  ||  结合的多重条件:

(  5<a<10  )

if [ $a -gt 5 ] && [ $a -lt 10 ]    

相当于  if [ $a -gt 5  -a  $a -lt 10 ]   (  -a and 意思  )

 

(  a<5  或者  a>10  )

if [ $a -lt 5 ] || [ $a -gt 10 ]

相当于  if [ $a -lt 5  -o  $a -gt 10 ]   (  -o or 意思  )

 

简单的if逻辑在命令行中的写法:

原脚本  

用;作为语句的分隔符 书写简单的逻辑

直接在命令行中一行行写也可以

 

判断文件、目录属性:

[  -f  文件名 ]  普通文件是否存在?

[  -d  文件名 ]  目录是否存在?

[  -e  文件名 ]  文件或目录是否存在

[  -r  文件名 ]  可读?

[  -w 文件名  ]  可写?

[  -x  文件名 ]  可执行?

 

举例:     若文件存在时候则输出1,若文件不存在则写内容到此新建文件中

 

root用户下,读写都是超级权限,而执行权限则需要对应的用户设置。

 

判断变量的值是否存在:

[ -z  “ $变量名”  ]   变量是否为空 (变量名一定要 ”” 不然容易出错)

[ -z  “ $变量名”  ]   变量是否不为空 ,相当于[ ! -z  “ $变量名”  ]

 

加一个 ! 则是取反的意思。

 

 

命令作为判断条件

直接用if判断一条命令是否成功,不用加 [ ] 。

不管成功与否都会有额外的命令显示,成功会写出命令,不成功会报错。

 

不管命令结果如何都重定向 &>/dev/null 中,这样命令结果就不会显示出来。

 

 

判断一个文件中是否包含某个内容

if  grep  –q  ‘ 123 ‘  1.sh;  then echo “1.sh文件中包含有123关键词”; fi

grep  –q 中 -q 的作用是——即使过滤到了内容也不要打印出来。

原本查出的内容加上 –q 后就不再显示了,但命令却是执行成功了的。

 

大小判断可以变为

[  ] 中不能用<, ==, > ,放入()才行。

if( ( $a<1 ) ); then...  等价于  if [  $a  –lt  1  ]; then....

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值