Shell Script 遇到错误时自动退出离开


Shell Script 里面的指令, 如果没有用条件控制 (例如 if), 不管之前的指令执行结果如何, 每个指令也会逐一执行, 例如:

上面的程式码很简单, 只是用 cd 指令转换到 /path/dir 目录, 然后执行 rm 指令, 将所有 .txt 结尾的档案删除。

但如果执行 cd 指令的时出错, 例如 /path/dir 目录不存在, 或者没有权限进入, 那便会在当前目录删除所有 .txt 副档名的档案。

解决方法十分简单, 只要加上 “set -e” 一行, 那么 Shell Script 执行指令遇到错误时, 便会立即终止执行, 并自动退出离开, 以上面的例子, 可以这样写:

当然另一个做法可以用 if 来检查 cd 的执行结果, 写法是这样:

Leave a Reply