2023年11月26日发(作者:)

linuxshell语句出错⾃动退出调试检查脚本

许多⼈⽤shell脚本完成⼀些简单任务,⽽且变成了他们⽣命的⼀部分。不幸的是,shell脚本在运⾏异常时会受到⾮常⼤的影响。在写脚本

时将这类问题最⼩化是⼗分必要的。本⽂中我将介绍⼀些让bash脚本变得健壮的技术。

使⽤set -u

你因为没有对变量初始化⽽使脚本崩溃过多少次?对于我来说,很多次。

相关⽂档指出,bash默认返回管道中最后⼀个命令的值,也许是你不想要的那个。⽐如执⾏ false | true 将会被认为命令成功执⾏。如果

你想让这样的命令被认为是执⾏失败,可以使⽤ set -o pipefail

程序防御 - 考虑意料之外的事

你的脚本也许会被放到“意外”的账户下运⾏,像缺少⽂件或者⽬录没有被创建等情况。你可以做⼀些预防这些错误事情。⽐如,当你创建

信号描述

INT

TERM

EXIT

Interrupt - 当有⼈使⽤Ctrl-C终⽌脚本时被触发

add_to_passwd $user

cp -a /etc/skel /home/$user

chown $user /home/$user -R