我想設計一個管道來執行一個可以通過引數進行多個配置的程式。開發人員對將每個引數都作為變數不感興趣,他們希望能夠選擇使用管道添加多個變數。我們正在使用 bash,我們使用 gitlab-ci 進行開發,我們正在使用 octopus 進行 uat env 部署。
例子:
spark2-submit \
--master $MASTER \
--name $NAME \
--queue $QUEUE \
--conf spark.shuffle.service.enabled=true \
--conf spark.dynamicAllocation.enabled=true \
--conf spark.dynamicAllocation.executorIdleTimeout=12
正如您在上面的示例中所看到的,我希望能夠靈活地添加更多“--conf”引數。
我應該有一個虛擬引數,然后將其添加到該命令的末尾嗎?
例如:
spark2-submit \
--master $MASTER \
--name $NAME \
--queue $QUEUE \
--conf spark.shuffle.service.enabled=true \
--conf spark.dynamicAllocation.enabled=true \
--conf spark.dynamicAllocation.executorIdleTimeout=12 \
$additional_param
我將 Gitlab 用于我的代碼倉庫,將 Octopus 用于我的 CICD。我正在使用 bash 進行部署。我正在尋找一個靈活的選項,我可以使用 Octopus 變數選項和 gitlab 的全部功能。你的建議是什么?你有更好的建議嗎?
uj5u.com熱心網友回復:
這就是查爾斯用“引數串列應該存盤在陣列中”所暗示的:
spark2_opts=(
--master "$MASTER"
--name "$NAME"
--queue "$QUEUE"
--conf spark.shuffle.service.enabled=true
--conf spark.dynamicAllocation.enabled=true
--conf spark.dynamicAllocation.executorIdleTimeout=12
)
# add additional options, through some mechanism such as the environment:
if [[ -n "$SOME_ENV_VAR" ]]; then
spark2_opts =( --conf "$SOME_ENV_VAR" )
fi
# and execute
spark2-submit "${spark2_opts[@]}"
bash 陣列定義可以包含任意空格,包括換行符,因此格式化以便于閱讀
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/521143.html
下一篇:計算文本中的特定模式
