博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【CentOS 7Shell编程3】,if判断文件、目录属性和if判断的一些特殊用法#180207
阅读量:5738 次
发布时间:2019-06-18

本文共 3031 字,大约阅读时间需要 10 分钟。

hot3.png

hellopasswd


if判断文件、目录属性

  • [-f file]判断是否是普通文件,且存在
  • [-d file]判断是否是目录,且存在
  • [-e file]判断文件或目录是否存在
  • [-r file]判断文件是否可读
  • [-w file]判断文件是否可写
  • [-x file]判断文件是否可执行
[root@localhost ~]# cd shell/[root@localhost shell]# vi 1.sh添加      1 #!/bin/bash      2 f="/tmp/user"      3 if [ -f $f ]      4 then      5     echo $f exist      6 else      7     touch $f      8 fi[root@localhost shell]# sh -x 1.sh + f=/tmp/user+ '[' -f /tmp/user ']'+ touch /tmp/user[root@localhost shell]# ls /tmp/ks-script-WBlSuE  mysql.sock  pear  php-fcgi.sock  user  yum.log[root@localhost shell]# [root@localhost shell]# [root@localhost shell]# [root@localhost shell]# [root@localhost shell]# sh -x 1.sh + f=/tmp/user+ '[' -f /tmp/user ']'+ echo /tmp/user exist/tmp/user exist[root@localhost shell]# ls /tmp/ks-script-WBlSuE  mysql.sock  pear  php-fcgi.sock  user  yum.log
[root@localhost shell]# vi 1.sh 添加      1 #!/bin/bash      2 f="/tmp/user"      3 if [ -d $f ]      4 then      5     echo $f exist      6 else      7     mkdir $f      8 fi
[root@localhost shell]# vi 1.sh 添加      1 #!/bin/bash      2 f="/tmp/user/"      3 if [ -e $f ]      4 then      5     echo $f exist      6 else      7     mkdir $f      8 fi

if判断的一些特殊用法

  • if [ -z "$a" ]这个表示当变量a的值为空时会怎么样
  • if [ -n "$a" ]表示当前变量a的值不为空
  • if grep -q ‘123’ 1.txt;then表示如果1.txt种含有'123'的行时会怎么样
  • if [ ! -e file ];then表示文件不存在时会怎么样
  • if (( $a < 1 ));then...等同于if [ $a -lt 1 ];then ...
  • []中不能使用<,>,==,!....等符号
[root@localhost ~]# cd shell/[root@localhost shell]# ls1.sh[root@localhost shell]# if [ -n 1.sh ]; then echo ok; fiok[root@localhost shell]# echo $b[root@localhost shell]# if [ -n "$b" ]; then echo $b; else echo "b is null"; fib is null
[root@localhost shell]# vi 1.sh 添加      1 #!/bin/bash      2 n=`wc -l /tmp/1.txt`      3 if [ -z "$n" ]      4 then      5     echo error      6     exit      7 else      8     if [ $n -gt 100 ]      9     then     10         echo ok     11     fi     12 fi

可以改为

[root@localhost shell]# vi 1.sh 添加      1 #!/bin/bash      2 n=`wc -l /tmp/1.txt`      3 if [ -z "$n" ]      4 then      5     echo error      6     exit      7 elif [ $n -gt 100 ]      8 then      9     echo ok     10 fi[root@localhost shell]# sh -x 1.sh ++ wc -l /tmp/1.txtwc: /tmp/1.txt: No such file or directory+ n=+ '[' -z '' ']'+ echo errorerror+ exit[root@localhost shell]# ls /tmp/ks-script-WBlSuE  mysql.sock  pear  php-fcgi.sock  user  yum.log
1 #!/bin/bash      2 if [ ! -f /tmp/1.txt ]      3 then      4     echo "/tmp/1.txt nnot exist."      5     exit      6 fi      7 n=`wc -l /tmp/1.txt`      8 if [ -z "$n" ]      9 then     10     echo error     11     exit     12 elif [ $n -gt 100 ]     13 then     14     echo ok     15 fi[root@localhost shell]# sh -x 1.sh + '[' '!' -f /tmp/1.txt ']'+ echo '/tmp/1.txt nnot exist.'/tmp/1.txt nnot exist.+ exit

使用变量时建议用双引号标注

[root@localhost shell]# if grep -w 'user1' /etc/passwd; then echo "user1 exist"; fi[root@localhost shell]# if ! grep -w 'user1' /etc/passwd; then echo "user1 exist"; fiuser1 exist

修改于 180207

转载于:https://my.oschina.net/hellopasswd/blog/1619940

你可能感兴趣的文章
Spring--通过注解来配置bean
查看>>
pandas 十分钟入门
查看>>
nginx rewrite
查看>>
前端安全系列(一):如何防止XSS攻击?
查看>>
IK分词器安装
查看>>
查看Linux并发连接数
查看>>
你是谁不重要,关键是你跟谁!
查看>>
CSS中规则@media的用法
查看>>
pychecker:分析你的python代码
查看>>
css 默认不显示 之后显示
查看>>
我的友情链接
查看>>
DNS显性+隐性URL转发原理
查看>>
我的友情链接
查看>>
网易有道 IP地址、手机号码归属地和身份证 查询接口API
查看>>
鼠标停留在GridView某一行时行的颜色改变
查看>>
系列3:WAS Liberty Profile hello mysql jdbc
查看>>
基础知识:python模块的导入
查看>>
Android MVC之我的实现
查看>>
我的友情链接
查看>>
我的友情链接
查看>>