Unix/Linux 脚本中 “set -e” 的作用

2014-11-24 02:04:13 · 作者: · 浏览: 3

Unix/Linux 脚本中 "set -e" 的作用


example:


-----------------------------------------------------------
#!/bin/bash


set -e


command 1
command 2
...
----------------------------------------------------------


Use set -e


Every script you write should include set -e at the top. This tells bash that it should exit the script if any statement returns a non-true return value. The benefit of using -e is that it prevents errors snowballing into serious issues when they could have been caught earlier. Again, for readability you may want to use set -o errexit.


Using -e gives you error checking for free. If you forget to check something, bash will do it or you. Unfortunately it means you can't check $ as bash will never get to the checking code if it isn't zero. There are other constructs you could use:


commandif [ "$ "-ne 0]; then echo "command failed"; exit 1; fi
could be replaced with


command || { echo "command failed"; exit 1; }
or


if ! command; then echo "command failed"; exit 1; fi
What if you have a command that returns non-zero or you are not interested in its return value You can use command || true, or if you have a longer section of code, you can turn off the error checking, but I recommend you use this sparingly.