如何在Unix shell中失败命令?

我用shell脚本并不是很好,仍然无法find解决scheme。 我想运行一个命令gulp tslint ,如果它返回错误,中止脚本。

到目前为止,我尝试了gulp tslint || exit 1 gulp tslint || exit 1没有成功。 我认为它以某种方式返回true,即使它有错误,当我运行命令提示符例如

 [12:30:14] Starting 'tslint'... [12:30:14] Finished 'tslint' after 9.49 ms [12:30:16] [gulp-tslint] error (quotemark) payment-types.ts[18, 53]: " should be ' 

我怎样才能使它工作?

任何帮助赞赏。 谢谢!

这看起来像一个吞咽问题,而不是一个壳问题。 当gulp成功完成(例如,在没有发生错误的情况下到达出口),它不会告诉shell有什么错误。 解决这个问题的最好方法是重新配置吞吐,将皮棉故障解释为错误。

你可以发布你的gulpfile.js吗? 特别是你的tslint任务。

它可能看起来像

 gulp.task('tslint', function() { gulp.src("**/*.ts") .pipe(tslint.report('prose')) }); 

您可以通过将其更改为:指示您的记者失败

 gulp.task('tslint', function() { gulp.src("**/*.ts") .pipe(tslint.report('prose', {emitError: true})) }); 

编辑:关于emitError的更多细节请看gulp-tslint 自述文件