当前文章接着Bash编程陷阱一写下来。 24. for arg in $* bash使用$*或者$@来承担脚本的所有入参,但用for遍历的时候需要注意 for arg in "$@" # 或者更简单的写法 for arg 这里的$@需要添加上"",此处的"$@"相当于"$1","$2","$3",而非"$1 $2 $3" 加引号的目的自然是预防空格,如果$1存在空格,那么就多出一个参数 25. f...

Bash编程陷阱:bash-pitfalls里面介绍了43条shell陷阱,都是一些很常见的应用场景,新手和老手都有可能犯的错误,为了加深记忆,自己就大致记录下来,英文文章用wiki编辑,条目随时可能增加,建议直接看英文。 如下的内容不完全翻译原文,穿插了一些自己的修改。 1. for i in $(ls *.mp3) bash编程中最常见的错误之一就...

shell中有很多命令适合对文本进行编辑,如grep,cut,sed,awk等,命令有很多,但没有哪个命令可以方便的通吃天下,而且由于shell命令的独特用法,用后即忘,现在记载于此,方便日后查询。 一、行操作 1.显示文件内容前10行 head -n 10 filename 2.显示文件内容后10行 tail -n 10 filename 3.显示指定的行数(2-5行) se...

shell输入密码之具体代码实现 在做shell脚本开发时会涉及到密码输入,就像系统密码输入一下,在终端不能将密码显示出来,直接不显示或者显示为*号. 一,不显示密码 1.直接通过read -s不回显密码. oen@oen ~/code/shell/passwd $ bash read-s.sh Username: oenhan.com Password: ------------------- Username is:oenhan.com...

将二进制文件打包到shell脚本 之前因为要用支付宝更新浏览器插件,直接下载了一个aliedit.sh脚本,直接执行脚本,便搞定了插件的安装,正要称赞阿里的开发人员人性化了,转念一下,一个shell脚本就能搞定的安装,岂不是可以直接cat脚本就可得知支付宝监控工具的代码啦. 直接cat结果如下: main() { SetStrings Mkdir ARCHIVE=...

正则表达式,就是用某种模式去匹配一类字符串的一个公式,用shell也有一段时间了,自诩对正则表达式也略微了解,却被正则表示式之道的题目难倒了,把文章的精华记录下来,工作中作为参考. 正则表达式有元字符和普通字符组成的,最终要理解元字符的意义. 1.元字符的意义 元字符 描述 . 匹配任何单个字符。例如正...

先说下操作系统的选择: 操作系统是用来用的,arch等与我无关,简单好用满足要求即可,自然是ubuntu了,也一直用了5年,见于一个人的Linux接触历史,基本上半年一换版本,直到10.10,主要是11.04太难用了,而且没有gtk3配套的软件,连chrome都装不上,后来感觉Unity太耗资源,不够简洁,一直到12.10才用mint,Cinnamon横...

在公司事业部级的shell编程规范里提到了这么一条建议规范: 建议所有在shell中使用反单引号执行bash命令的脚本统一使用$()进行替换 如:echo `ls` 替换为 echo $(ls) 但Gaopei同学在整改代码的时候便出现了问题,一条shell语句直接终止,真是一条编程规范引发的血案 ~ $ echo `df | sed 's////g' | tail -n 1` /dev/sda...