- egrep 及扩展正则表达式
egrep = grep -E
扩展正则表达式的元字符:字符匹配:.,[],[^]
次数匹配:*,?0或1次,+1次或多次,{m}匹配m次,{m,n}至少m次,至多n次
锚定:^,$,\ <,\b,\ >,\b
分组:()后向引用:\1\2
或者a|b - bash的基础特性(4)
变量类型:数据存储格式,存储空间大小,参与运算种类
字符型
数值型:整型,浮点型
强类型:定义变量时必须指定类型,参与运算必须符合类型要求,调用未声明变量会产生错误。
弱引用:无须指定类型,默认均为字符型,参与运算会自动进行隐式类型转换,变量无须事先定义可直接调用。 - bash中变量的种类:根据变量的生效范围等标准
本地变量:生效范围为当前shell进程,对当前shell之外的其他shell进程,包括当前shell的子shell均无效。
环境变量:生效范围为当前shell进程及其子进程。
局部变量:生效范围为当前shell进程中某代码片段(通常指函数)。
位置变量:$1,$2…来表示,用于让脚本在脚本代码中调用通过命令行传递给它的参数。
特殊变量:¥?,¥0,¥*,¥@,¥# - 本地变量:
变量赋值:name=‘value’,可以使用引用:
value:1可以是直接字符串:name=“username”2变量引用:name=“$username”3命令引用:name=`command```,name=¥(command)
变量引用:¥{name},¥name
“”:弱引用,其中的变量引用会被替换为变量值
‘’:强引用,其中的变量引用不会被替换为变量值,而保持原字符串
显示已定义的所有变量:set
销毁变量:unset name - 环境变量:变量声明,赋值
export name=value
declare -x name=value
变量引用:$name,¥{name}
显示所有环境变量:export,env,printenv
销毁:unset name
bash有许多内建的环境变量:PATH,SHELL,UID,HISTSIZE,HOME,PWD,OLD,HISTFILE,PS1
变量命名法则:1不能使用程序中的保留字,例如if,for
2只能使用数字,字母及下划线,且不能以数字开头
3见名知义
只读变量:readonly name
declare -r name
位置变量:在脚本代码中调用通过命令行传递给脚本的参数:
¥1,¥2…对应调用第1第2等参数
shift 【n】
¥0:命令本身
¥*:传递给脚本的所有参数
¥@:传递给脚本的所有参数
¥#:传递给脚本的参数的个数