Bash小技巧
来源:互联网 发布:淘宝笔记本为什么便宜 编辑:程序博客网 时间:2024/05/02 15:30
退出码判断(命令执行成功与否的判断)
在Bash脚本中,我们经常要先执行某个命令行,然后判断它是否执行成功,这时我们要对它的退出码进行判断。罗嗦一些的写法如下:
- if [ $? -eq 0 ]
- then
- echo "Success"
- fi
简洁的写法如下:
- [ $? -eq 0 ] && echo "Success"
条件判断的简单写法
又如,判断是否有某个目录,如果没有就终止脚本执行,罗嗦一些的写法如下:
- if [ ! -d "$DIR" ]; then
- exit 1
- fi
简洁的写法如下:
- [ -d "$DIR" ] || exit 1
查找字符串
好多人习惯上这样写:
- cat /etc/passwd | grep root
其实下面的写法更好,不需要执行cat命令、不需要管道线:
- grep root /etc/passwd
here document的写法
一般人都这样写:
- if true; then
- cat >some.txt <<EOF
- 123
- 345
- 567
- 789
- EOF
- fi
这样写,最后那个EOF就要顶格写,破坏了程序应有的缩进格式,最好如下写法:
- if true; then
- cat >some.txt <<-EOF
- 123
- 345
- 567
- 789
- EOF
- fi
注意EOF前面的减号,数据前面都用制表符,不能用空格。
读取文件的第一行
很简单:
- head -1 file.txt
如果用sed来实现,可以是:
- sed -n '1p' file.txt
但上面这个命令会导致整个文件都会读取一遍,对于大数据量的文件效率实在不高。如果能够在读取完了1行之后,就不再读取呢,下面的命令行可以做到:
- sed -n '1p;1q' file.txt
检索指定id的用户名
通常想到的方式是:
- grep 502 /etc/passwd | cut -d: -f1
或者这样:
- grep 502 /etc/passwd | awk -F":" '{print $1}'
其实一条awk命令就可以做到,不需要用到管道线:
- awk -F":" '$3==502{print $1}' /etc/passwd
from:http://codingstandards.iteye.com/
- bash小技巧
- bash shell小技巧
- Bash小技巧
- bash 小技巧
- bash使用小技巧
- 十个Linux bash小技巧
- Bash命令小技巧总结
- bash 脚本小技巧(1)
- 十个Linux bash小技巧
- bash编程之 小技巧
- Linux bash shell 的十个小技巧
- [小技巧] 在bash中生成随机数
- CTF 中 Bash中的小技巧
- Bash技巧
- bash技巧
- Bash技巧
- 十个有用的Linux bash shell小技巧
- [小技巧] bash 中快速跳转到目录里
- Android开发 - 常用点击响应事件OnClickListener
- jquery动态表格,动态添加表格行
- 前端学习3
- linux使用ls -l命令卡死问题
- AJAX 实现投球进篮
- Bash小技巧
- TTP协议 (五) 代理
- 三层架构变成两层架构以后需要注意的问题
- 快排之标准实现
- Dao类中常用的 findByProperty 方法 demo
- SharePoint2010网站备份还原简单介绍(转)
- get external sdcard status using java reflection
- 灭屏时间
- 关于微原创