06_01_bash脚本编程之四 整数测试及特殊变量06_02_sed命令

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处为止退出;例如测试文件是什么文件,如果不存在,直接退出脚本不执行:

06_01_bash脚本编程之四 整数测试及特殊变量06_02_sed命令_第1张图片

注:如果脚本没有明确定义退出状态码,那么,最后执行的一条命令的退出码即为脚本退出状态码

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行,显示剩下的:

06_01_bash脚本编程之四 整数测试及特殊变量06_02_sed命令_第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:

你可能感兴趣的:(06_01_bash脚本编程之四 整数测试及特殊变量06_02_sed命令)