06_01_bash脚本编程之四 整数测试及特殊变量
文件测试(单目测试):
-e file: 文件是否存在;
-f file: 测试文件是否为普通文件
-d file: 测试路径是否为目录;
-r file: 测试文件对当前用户而言是否可读;
-w file: 测试文件对当前用户而言是否可写;
-x file :测试文件对当前用户而言是否可执行;
圆整:linux中默认丢弃小数点后的内容
bash命令:
bash -n 脚本:测试脚本是否有语法错误;
bash -x 脚本:单步执行脚本,每一步的过程都显示出来;
多分支if语句:
if 判断条件1;then
statement1
...
elif 判断条件2;then
statement2
...
elif 判断条件3;then
statement3
...
else
statement4
...
fi
脚本退出命令:
exit n:退出脚本的命令,n为数字,0为正确,1-255为错误,执行状态结果不自定义,则以至exit处为止退出;例如测试文件是什么文件,如果不存在,直接退出脚本不执行:
注:如果脚本没有明确定义退出状态码,那么,最后执行的一条命令的退出码即为脚本退出状态码
bash变量类型:
本地变量
环境变量
位置变量
特殊变量:
$?(获得命令的执行状态结果),
$#(显示参数个数),
$*(参数列表),
$@
shift(轮替,后一个参数替换一个参数)
06_02_sed命令
sed基本用法(Stream EDitor):
sed中有模式空间的概念,指定处理哪些行,现将其放入模式空间中,默认不编辑源文件,仅对模式空间中的数据做处理,处理完后将模式空间打印出来,也就是处理结果和模式空间的内容各打一份,
用法格式:
sed options 'AddressCommand' file: 选项 位置+命令 文件路径
options:
-n:静默模式,不再显示模式空间中的内容,sed默认除了打印一遍处理结果,还会显示一遍模式空间;
-i:直接修改原文件;
-e:可同时执行多个脚本,一次-e代表一次AddressCommand操作;
-f:制定一个文件,来作为AddressCommand执行脚本;
-r:使用扩展正则表达式;
Address:
1、startline,endline,匹配起始行开始,到结束行结束;$表示最后一行
2、/模式(正则)/,匹配符合模式的行;
3、/pattern1/,/pattern2/,从第一次被模式一匹配到的行到匹配到模式二的行结束;
4、lineNumber,指定匹配行;
5、startline,+N:匹配从指定行开始,向后的N行,不指定即为全文;
Command:
d:删除符合条件的行,例如删去匹配到的1和2行,显示剩下的:
p:显示符合条件的行
a \string:在指定的行后面追加新行,内容为“string”
i \string:在指定的行前面追加新行,内容为“string”
r file:将指定的文件的内容添加至符合条件的行处;
w file:将指定的文件的内容另存至指定的文件中;
s/pattern/string/修饰符:查找并替换,也可写为s#pattern#string#修饰符,或s@pattern@string@修饰符,被pattern匹配到的字符串替换为string,默认只替换每行中第一次被模式匹配到的字符串;
修饰符:g(全局替换)
i(忽略字符大小写)
例如替换/etc/inittab文件中id:3:initdefault:数字3换为5: