shell编程详解(二)
2016-07-15 21:45
411 查看
文件测试:
-e file:测试文件是否存在
-f file:测试文件是否为普通文件
-d file:测试指定路径是否为路径
-r file:测试当前用户对指定文件是否有读权限
-w file:测试当前用户对指定文件是否有写权限
-x file:测试当前用户对指定文件是否有执行权限
测试shell是否有语法错误
bash -n xx.sh:能够见到判断脚本语法是否有错误
bash -x xx.sh:单步执行,用于脚本调试
定义脚本退出状态码:
exit:退出脚本
exit n: 0表示正常退出,1-255表示错误退出
如果脚本没有明确定义退出状态码,那么最后执行的一条命令的退出码即为脚本的退出状态码
特殊变量:
$?:上一个命令退出状态
$#:参数的个数
$*:参数列表
$@:参数列表
位置变量:shift
sed用法
sed:Stream Editor,行编辑器,默认不编辑原文件,仅对模式空间中的数据处理
sed [option] 'AddressConmand' file...
-n:静态模式,不再默认显示模式空间的内容
-i:直接修改原文件
-e script -e script:可以同时执行多个脚本
-f sedfile:可以将多个脚本放在一个里面
sed -f sedfile file
-r:表示使用正则表达式
Adress:
1、StartLine,EndLine
比如:1,100
$:表示最后一行
2、/REGEXP/
比如:/^root/
3、/pattern1/,/pattern2/
第一次被pattern1匹配到的行开始,至第一杯pattern2匹配到的行结束,这中间的所有行
4、LineNumber 指定的行
5、StartLine,+N
从Startline开始,向后的N行
Command:
d:删除符合条件的行
p:显示符合条件的行
a \string:在指定的行后面追加新行,内容为string
\n:可以用于换行
i \string:在指定的行前面添加新行,内容为string
r FILE:将指定的文件的内容添加至符合条件的行处
w FILE:将地址指定的范围内的行另存至指定的文件中
s/pattern/string/:查找并替换,默认只替换每行中第一匹配被模式匹配到的字符串
加修饰符:
g:全局替换
i:忽略大小写
s///:也可以用s###,s@@@
&:引用模式匹配整个串
例如:
l..e:like ->liker
love ->lover
sed 's#\(l..e\)#&r#g' xx.txt 或者 sed 's#\(l..e\)#\1r#g' xx.txt
本文出自 “忘记过去” 博客,请务必保留此出处http://xujingbo.blog.51cto.com/4633099/1826847
-e file:测试文件是否存在
-f file:测试文件是否为普通文件
-d file:测试指定路径是否为路径
-r file:测试当前用户对指定文件是否有读权限
-w file:测试当前用户对指定文件是否有写权限
-x file:测试当前用户对指定文件是否有执行权限
测试shell是否有语法错误
bash -n xx.sh:能够见到判断脚本语法是否有错误
bash -x xx.sh:单步执行,用于脚本调试
定义脚本退出状态码:
exit:退出脚本
exit n: 0表示正常退出,1-255表示错误退出
如果脚本没有明确定义退出状态码,那么最后执行的一条命令的退出码即为脚本的退出状态码
特殊变量:
$?:上一个命令退出状态
$#:参数的个数
$*:参数列表
$@:参数列表
位置变量:shift
sed用法
sed:Stream Editor,行编辑器,默认不编辑原文件,仅对模式空间中的数据处理
sed [option] 'AddressConmand' file...
-n:静态模式,不再默认显示模式空间的内容
-i:直接修改原文件
-e script -e script:可以同时执行多个脚本
-f sedfile:可以将多个脚本放在一个里面
sed -f sedfile file
-r:表示使用正则表达式
Adress:
1、StartLine,EndLine
比如:1,100
$:表示最后一行
2、/REGEXP/
比如:/^root/
3、/pattern1/,/pattern2/
第一次被pattern1匹配到的行开始,至第一杯pattern2匹配到的行结束,这中间的所有行
4、LineNumber 指定的行
5、StartLine,+N
从Startline开始,向后的N行
Command:
d:删除符合条件的行
p:显示符合条件的行
a \string:在指定的行后面追加新行,内容为string
\n:可以用于换行
i \string:在指定的行前面添加新行,内容为string
r FILE:将指定的文件的内容添加至符合条件的行处
w FILE:将地址指定的范围内的行另存至指定的文件中
s/pattern/string/:查找并替换,默认只替换每行中第一匹配被模式匹配到的字符串
加修饰符:
g:全局替换
i:忽略大小写
s///:也可以用s###,s@@@
&:引用模式匹配整个串
例如:
l..e:like ->liker
love ->lover
sed 's#\(l..e\)#&r#g' xx.txt 或者 sed 's#\(l..e\)#\1r#g' xx.txt
本文出自 “忘记过去” 博客,请务必保留此出处http://xujingbo.blog.51cto.com/4633099/1826847
相关文章推荐
- Shell 学习 (一) vim使用 变量类型
- Web安全之:WebShell的获取与查杀
- adb shell dumpsys meminfo <packageName> [-d] 查看app(进程)的内存占用(未完待续)
- linux shell 自动输入y/yes
- 在Xshell中使用sz、rz进行本机和远程主机(或虚拟机)之间文件的传输
- Bash条件判断
- Xshell实现Windows上传文件到Linux主机
- linux shell脚本中,关于test测试和if判断中常用的标志[-eq,gt..]
- 部署explainshell
- shell中数组的基本用法
- shell 中判断值是否已经在数组中
- shell比较 两个字符串是否相等?
- 希尔(shell)排序算法
- xshell添加按钮。
- linux操作系统-vim和shell脚本常用知识总结
- Linux 下的 shell 编程之变量
- 一样的思路 不一样的方式 shell脚本的方式
- -bash: crontab: command not found
- shell脚本wc命令详解!!需求输出结果
- shell脚本输出颜色字体