if语句理解:如果怎样就怎样否则怎样(个人理解)
语法一(一个条件)、
if [condition] #如果 条件
then #那么
command #执行命令
fi #条件结束(结束语句)
#条件与[] 之间有空格(固定格式)
#单行写法:fi [condition] ;then command;fi
流程图:
语法二(两个条件):
if [ condition ] ;then #如果 条件满足
command1 #执行条件1,结束;
else #否则
command2 #执行条件2,结束;
fi #结束;
流程图:
语法三(多个条件)、
if [condition1]
then
command1
elif [condition2]
then
command2
elif [condition3]
then
command3
else
command
fi
(如果条件1满足,执行命令1后结束;如果条件1不满足,再看条件2,满足执行命令2后结束,否则再看条件3,如果都不满足,执行else 命令后结束)
条件语句中常用的运算符:
一、算数运算符:
1、+:加法;
2、-:减法;
3、*:乘法(注意转义)
4、/:除法;
5、%:取余;
6、=:赋值;
7、==:相等(相等返回真);
8、!=:不相等(不相等返回真);
二、关系运算符:
1、-eq:检测是否相等,相等返回真;
2、-ne:检测是否不相等,不相等返回真;
3、-gt:检测左边数是否大于右边(a>b
),如果是,返回真;
4、-lt:检测左边数是否小于右边(a<b),如果是,返回真;
5、-ge:检测左边是否大于等于右边(a>=b)如果是,返回真;
6、-le:检测左边是否小于等于右边(a<=b)如果是,返回真
三、逻辑运算符:
1、!:非运算,表达式返回真,则返回假;
2、-o:或;
3、-a:与,并且;
四、字符串运算符:
1、=:检测两个字符串是否相等,相等返回真;
2、!=:检测两个字符串是否不相等,不相等返回真;
3、-z:检测字符串长度是否为o,为0返回真;
4、-n:检测字符串长度是否不为0,不为0,返回真;
5、str:检测字符串是否为空,不为空,返回真;
五、文件测试运算符【运算符+$文件名】:
1、-b:检查文件是否是块设备文件,如果是,返回真;
2、-c:检测文件是否是字符设备文件,如果是,返回真;
3、-d:检测文件是否是目录,如果是,返回真;
4、-f:检测文件是否是普通文件,如果是,返回真;
5、-g:检测文件是否设置了SGID位,如果是,返回真;
6、-k:检测文件是否设置了bit位,如果是,返回真;
7、-p:检测文件是否有名管道,如果是,返回真;
8、-u:检测文件是否设置了SUID 位,如果是,返回真;
9、-r:检测文件是否可读;
10、-w:检测文件是否可写;
11、-x:检测文件是否可执行;
12、-s:检测文件是否为空(文件大小是否大于o),不为空返回真;
13、-e:检测文件,目录是否存在,如果存在,返回真;
[:alnum:] 字母与数字字符
[:alpha:] 字母字符(包括大小写字母)
[:blank:] 空格与制表符
[:digit:] | 数字
[:lower:] 小写字母
[:upper:] 大写字母
[:punct:] 标点符号
[:space:] 包括换行符,回车等在内的所有空白