2017-09-04 83 views
0

我在Jenkins中有一個bash腳本,它使用Nashorn引擎執行一點JavaScript。在bash腳本中捕獲JavaScript語法錯誤

bash腳本:

#!/bin/bash 

"$JAVA_HOME/bin/jjs" -scripting allKeys.js | sort > resultKeys 

的allKeys.js腳本裝載來自外部位置的另一腳本,然後打印一些值:

bundlesUrl="https://address.to/bundles.js"; 
load(bundlesUrl); 

for (var bundle in bundles) { 
    if (bundles.hasOwnProperty(bundle)) { 
     for (var key in bundles[bundle]) { 
      print(bundle + "\t" + key + "\t\t\"" + bundles[bundle][key] + "\""); 
     } 
    } 
} 

然而,在bundlesUrl指定的JavaScript文件有時包含不正確逃脫特殊字符。這當然會產生語法錯誤。

jjs顯示出現語法錯誤,但bash腳本繼續。

我想要做的是以某種方式捕獲該語法錯誤並退出bash腳本,代碼爲1,以便詹金斯構建標記失敗。

實現此目標的一些好方法是什麼?

編輯:我發現我可以用set -e

+0

不'jjs'指定一個未處理的/語法異常的錯誤代碼? – Caramiriel

+0

在Jenkins控制檯日誌中,我看到只有'jjs'的消息出現語法錯誤,然後bash腳本繼續。我想要做的就是在那裏退出腳本。 –

回答