20.5 shell脚本中的逻辑判断
在工作中,不用写脚本,可以写一条命
可以不用写shell脚本,可以用一条命令代替。
也可以这样写,效果一样
写多条命令
写一个脚本
把命令放到脚本里,格式化一下。
20.6 文件目录属性判断
判断是不是一个文件
判断文件是不是目录
判断文件是不是目录或文件?
判断文件是否可读
判断文件是否可写,
判断的是当前用户的权限。
判断是否可以执行
因为不可执行,所以没有任何输出,也没有定义else
以上是文件和目录常用的方法。
以下用的比较多的写法
第3行等于第3行下面4行,&&的意思是当前面的命令执行成功后,才会执行后面的命令。如果不想写4行,可以直接用上面的命令。
||的意思,前面的命令执行不成功过,才执行后面的命令。
判断文件如果文件不存在
20.7 if特殊用法
n=wc -l /tmp/lalal
是列出/tmp/lalal的行数,如果/tmp/lalal不小心被删了,的值是空,就会出现问题。
如果脚本出现问题,那么会影响到整个项目。为了使脚本更严谨。
如果为空的写法
简化,加上exit,写为如下:
上个脚本是逻辑错误,产生了一个空的值,然后去比较。下面脚本只是一个命令有错,不是脚本有错。
if[-z“$n"]和if[-n"$n"]比较特殊,有一个必须加一个双引号,才能生效。为了不搞混,在使用-z和-n的时候,都加“”
可以写得更严谨。! - f /tmp/lalal 是指不文件存在。
判断文件不为空,不用加双引号。
判断变量不为空,要加双引号
grep -w 可以精准过滤,grep -wq可以过滤出来,但是不输出。
grepuseradd user1 不会生效,所以不会输出。
20.8case判断(上)
20.9 case判断(下)
原文:http://blog.51cto.com/461565/2125251