Bootstrap

ShellScript脚本编程(函数与正则表达式)

函数的本质就是一段可以反复调用的代码块

在Shell中,函数细分为系统函数自定义函数

系统函数

我们可以测试一些系统命令,例如使用率非常高的 date ,我们还可以获取时间戳 date +%s

当我们需要打印写一些系统日志信息文件的时候,文件的命名规则通常在最后会添加上时间戳

#!/bin/bash
filename="$1_log_$(date +%s)"
echo $filename

正则表达式使用单个字符串来描述、匹配一系列符合某个语法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。在 Linux 中,grep,sed,awk 等文本处理工具都支持通过正则表达式进行模式匹配

常规匹配

一串不包含特殊字符的正则表达式匹配它自己

常用特殊字符

1. 字符区间(中括号):[]

[] 表示匹配某个范围内的一个字符 [6,8]------匹配6或者8 [0-9]------匹配一个0-9 的数字 [0-9]*------匹配任意长度的数字字符串 [a-z]------匹配一个 a-z 之间的字符 [a-z]*-----匹配任意长度的字母字符串 [a-c,e-f]---匹配 a-c 或者 e-f之间的任意字符                                                     

cat /etc/passwd | grep r[a,b]t
echo "23fsdfrat23f5y2t23sdf" | grep r[a,b]t
echo "23fsdfrat23f5y2t23sdf" | grep r[ab]t
echo "23fsdfraabat23f5y2t23sdf" | grep r[ab]*t
cat /etc/passwd | grep r[a-z]t
cat /etc/passwd | grep r[a-z]*t
cat /etc/passwd | grep r[a,b]t
echo "23fsdfrat23f5y2t23sdf" | grep r[a,b]t
echo "23fsdfrat23f5y2t23sdf" | grep r[ab]t
echo "23fsdfraabat23f5y2t23sdf" | grep r[ab]*t
cat /etc/passwd | grep r[a-z]t
cat /etc/passwd | grep r[a-z]*t

;