1、set -ue
- -e 遇到错误不执行后续命令
- -u 未定义的变量调用报错
2、printf
按照指定格式打印
printf "%s\n" 1 2 3 41234printf "%s %s\n" 1 2 3 41 23 4
3、字符串匹配
3.1、通配符匹配
# 匹配文件名末尾是否为log[[ "$FILE" == *.log ]]# 匹配文件名末尾是否不为log[[ "$FILE" != *.log ]]
3.1、正则表达式匹配
# 匹配文件名是否已log结尾[[ "$FILE" =~ \.log$ ]]# 判断变量是否为纯数字[[ "$N" =~ ^[0-9]+$ ]]
4、命令中的()和{}
# ()会开启子shell进程name=zhangsan;(echo $name;name=lisi;echo $name);echo $namezhangsanlisizhangsan# {}不会开启子shell进程name=zhangsan;{ echo $name;name=lisi;echo $name; };echo $namezhangsanlisilisi
