当前文章接着Bash编程陷阱一写下来。
24. for arg in $*
bash使用$*或者$@来承担脚本的所有入参,但用for遍历的时候需要注意
[crayon-6006a8e2d7913914161295/]
这里的$@需要添加上"",此处的"$@"相当于"$1","$2","$3",而非"$1 $2 $3"
加引号的目的自然是预防空格,如果$1存在空格,那么就多出一个参数
25. funct...
Bash编程陷阱:bash-pitfalls里面介绍了43条shell陷阱,都是一些很常见的应用场景,新手和老手都有可能犯的错误,为了加深记忆,自己就大致记录下来,英文文章用wiki编辑,条目随时可能增加,建议直接看英文。
如下的内容不完全翻译原文,穿插了一些自己的修改。
1. for i in $(ls *.mp3)
bash编程中最常见的错误之...
shell中有很多命令适合对文本进行编辑,如grep,cut,sed,awk等,命令有很多,但没有哪个命令可以方便的通吃天下,而且由于shell命令的独特用法,用后即忘,现在记载于此,方便日后查询。
一、行操作
1.显示文件内容前10行
[crayon-6006a8e2d9368326443085/]
2.显示文件内容后10行
[crayon-6006a8e2d937688531...
shell输入密码之具体代码实现
在做shell脚本开发时会涉及到密码输入,就像系统密码输入一下,在终端不能将密码显示出来,直接不显示或者显示为*号.
一,不显示密码
1.直接通过read -s不回显密码.
[crayon-6006a8e2d9a01398947082/]
2.通过stty -echo不回显密码
stty可以更改终端的一些特性,-echo选项可以使终端不回显...
将二进制文件打包到shell脚本
之前因为要用支付宝更新浏览器插件,直接下载了一个aliedit.sh脚本,直接执行脚本,便搞定了插件的安装,正要称赞阿里的开发人员人性化了,转念一下,一个shell脚本就能搞定的安装,岂不是可以直接cat脚本就可得知支付宝监控工具的代码啦.
直接cat结果如下:
[crayon-6006a8e2da072143227760/]
...
正则表达式,就是用某种模式去匹配一类字符串的一个公式,用shell也有一段时间了,自诩对正则表达式也略微了解,却被正则表示式之道的题目难倒了,把文章的精华记录下来,工作中作为参考.
正则表达式有元字符和普通字符组成的,最终要理解元字符的意义.
1.元字符的意义
元字符
描述
.
匹配...
在公司事业部级的shell编程规范里提到了这么一条建议规范:
建议所有在shell中使用反单引号执行bash命令的脚本统一使用$()进行替换 如:echo `ls` 替换为 echo $(ls)
但Gaopei同学在整改代码的时候便出现了问题,一条shell语句直接终止,真是一条编程规范引发的血案
[crayon-6006a8e2da777958471139/]
同样的命令...