shell中每一行执行完之后都会有状态码,下一行命令用$?获得上一行命令的状态码,参考:
在shell中,默认当某行命令执行出错之后,后面的命令会继续执行,这会导致后面的代码会出现不可预知的错误,所以当我们的shell程序出错时,应该立即停止执行shell程序。那应该怎么处理?最简单粗暴的方式是在shell文件中加上set -e。当执行语句的状态码不为0时,直接退出程序。但是有很多情况是要在出错的情况下继续执行的,比如检测hdfs目录是否存在。不存在就新建一个,这个时候可以先暂时关闭set +e,语句运行完之后,再打开set -e。
set -x #启动"-x"选项 要跟踪的程序段 set +x #关闭"-x"选项 |
也可以使用别的方式。参考: