整理收集Linux运维方面的知识
Shell
在Linux运维中写shell脚本是再正常不过的了,要让脚本写得有效率、安全,这里整理了一些东西。
开场语句
1 |
|
set -o nounset
在默认情况下,遇到不存在的变量,会忽略并继续执行,而这往往不符合预期,加入该选项,可以避免恶果扩大,终止脚本的执行。
画外音:有些变量名的手误,会让人崩溃的调试半天,通过这个方式,这类手误秒发现。
set -o errexit
在默认情况下,遇到执行出错,会跳过并继续执行,而这往往不符合预期,加入该选项,可以避免恶果扩大,终止脚本的执行。
画外音:有些Linux命令,例如rm的-f参数可以强制忽略错误,此时脚本便无法捕捉到errexit,这样的参数在脚本里是不推荐使用的。
注意封装函数
有的时候封装函数能够很大程度上提高程序的复用性
1 | log() { # classic logger |
使用$()
代替反引号
原因:
$()
能够支持内嵌;$()
不用转义;- 有些字体,反单引号和单引号很像,容易把人搞晕;
使用多种调试方法
echo
不是唯一的调试方法
bash -n test.sh
可以对脚本进行语法检查
bash -v test.sh
可以跟踪脚本中每一个命令的执行
bash -x test.sh
跟踪每一个命令的执行,并添加扩充信息
也可以在脚本里,添加set -o verbose
set -o xtrace
来永久指定输出调试信息。
其他
博客中还有其他的Linux文章: