Pis*_*tos 35 bash shell scripting
假设shell脚本(/ bin/sh或/ bin/bash)包含多个命令.如果任何命令的退出状态失败,如何干净地使脚本终止?显然,可以使用if块和/或回调,但是有更清晰,更简洁的方法吗?使用&&也不是一个选项,因为命令可能很长,或者脚本可能有非常重要的东西,如循环和条件.
mat*_*mat 61
随着标准sh和bash,你可以
set -e
Run Code Online (Sandbox Code Playgroud)
它会
$ help set
...
-e Exit immediately if a command exits with a non-zero status.
Run Code Online (Sandbox Code Playgroud)
它也适用于(我可以收集的)zsh.它也适用于任何Bourne shell后代.
使用csh/ tcsh,您必须使用启动脚本#!/bin/csh -e
Bar*_*run 17
可能你可以使用:
$ <any_command> || exit 1
Run Code Online (Sandbox Code Playgroud)