我在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
不'jjs'指定一個未處理的/語法異常的錯誤代碼? – Caramiriel
在Jenkins控制檯日誌中,我看到只有'jjs'的消息出現語法錯誤,然後bash腳本繼續。我想要做的就是在那裏退出腳本。 –