shell if 语句中的常见参数
在shell脚本中,经常看到if判断语句中的各种参数,归纳汇总如下:
if 判断语句中常见的参数
- -d:判断是否是目录,是目录的话为真
- -e:判断指定的文件是否存在,存在的话为真
- -z:判断指定对象的长度是否为0,为0的话,为真
- -n:判断指定对象的长度是否为null,非空,为真
- -f:判断指定的对象是否为文件
- -L: 判断指定的对象是否为符号链接
- -r:判断指定的对象是否可读
- -s: 判断存在的对象长度是否为0
- -w: 判断指定的对象是否可写
- -x:判断存在的对象是否可执行
- !:测试条件的否定符号
if文件表达式
- [ -a FILE ] :如果 FILE 存在则为真。
- [ -b FILE ] :如果 FILE 存在且是一个块特殊文件则为真。
- [ -c FILE ] :如果 FILE 存在且是一个字特殊文件则为真。
- [ -d FILE ] :如果 FILE 存在且是一个目录则为真。
- [ -e FILE ] :如果 FILE 存在则为真。
- [ -f FILE ] :如果 FILE 存在且是一个普通文件则为真。
- if [ -d dir ] : 如果dir目录存在,为真
- if [ -s file ] : 如果file文件存在且非空,为真
- if [ -r file ] : 如果file文件存在且可读,为真
- if [ -w file ] : 如果file文件存在且可写,为真
- if [ -x file ] : 如果file文件存在且可执行,为真
整数变量表达式
- if [ int1 -eq int2 ] : 如果int1 等于 int2,表达式的值为真
- if [ int1 -ne int2 ] : 如果int1 不等于 int2,为真
- if [ int1 -ge int2 ] : 如果int1 >= 于int2,为真
- if [ int1 -gt int2 ] : 如果int1 > int2,为真
- if [ int1 -le int2 ] : 如果int1 <= int2,为真
- if [ int1 -lt int2 ] : 如果int1 < int2,为真
字符串表达式
- If [ $string1 = $string2 ] : 如果 string1 等于 string2,为真
- if [ $string1 != $string2 ] : 如果string1 不等于 string2,为真
- if [ -n $string ] : 如果string 非空(非0),为真
- if [ -z $string ] : 如果string 为空,值为真
- if [ $sting ] : 如果string 非空,返回0 (和-n类似),表达式的值为真
《Linux三剑客》视频教程:Linux下开发工具vim、Git、Makefile、autotools、qemu、debug精讲,从零开始一步一步写项目的Makefile,提供企业级Makefile模板,Git操作实战,vim从新手到高手,一步一步打造类似Source Insight的IDE!详情点击:王利涛老师个人淘宝店:Linux三剑客