Bash小技巧(惯用法)
退出码判断(命令执行成功与否的判断)
在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前面的减号,数据前面都用制表符,不能用空格。
本文介绍Bash脚本中的高效退出码判断方法、条件判断简化写法、字符串查找优化及heredocument规范写法,提升脚本编写效率。
368

被折叠的 条评论
为什么被折叠?



