linux——if条件结构 正则表达式-爱代码爱编程
1.测试脚本输出
(1)使用test命令执行完整性检查。为了确保脚本不会由于意外情况而轻易中断,test命令会在完成后生成一个退出代码,存储在值$?中,通过显示$?值来查看测试的结果,退出值状态为0表示测试成功,否则失败。
(2)运算符在执行测试中会被用到,可以确定某个数值是大于(-gt)、小于(-lt)、大于等于(-ge)、小于等于、等于(-eq)或不等于(-ne)另一个数值。返回值为空(-z)、返回值不为空(-n)。
2.if条件结构
(1)使用if/then结构
if <CONDITION>; then
<STATEMENT> 例如:systemctl is-active psacct > /dev/null 2>&1
... if [ $? -ne 0 ]; then
<STATEMENT> sudo systemctl start psacct
fi fi
(2)使用if/then/else结构
if <CONDITION>; then
<STATEMENT>
...
else
<STATEMENT>
...
fi
(3)使用if/then/elif/then/else结构
if <CONDITION>; then
<STATEMENT>
...
elif <CONDITION>; then
<STATEMENT>
...
else
<STATEMENT>
...
fi
3.正则表达式
(1)完全匹配:正则表达式的字符与正搜索的类型和顺序都匹配
(2)匹配行首:使用脱节字符(^),^cat正则表达式匹配以cat开头的行。
(3)匹配行尾:使用美元符号($),cat$正则表达式匹配以cat结尾的行。
(4)匹配一行中的唯一词语,^cat$:查找唯一词语cat的行,^$:过滤空行。
(5)正则表达式添加通配符
c.t | 将搜索包含c加任意单个字符加t的字符串。(concatenate) |
c[aou]t | 将匹配以c开头,后跟a、o、u,然后是t 的字符串。 |
c.*t | 将匹配以c开头以 c 开头,以 t 结尾的内容(不要写成c*t)(culvert) |
4.grep命令
-i | 不强制区分大小写 |
-v | 仅显示不包含正则表达式匹配项的行 |
-r | 将递归地匹配正则表达式的数据搜索应用到一组文件或目录中 |
-e | 使用多个 -e 选项提供多个正则表达式 |