[英]Bad substitution error in shell script while extracting directory
運行以下 shell 腳本時出現替換錯誤。 (行號僅供參考):
第 11 行> SCENARIO_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
第 12 行> SCENARIO_PATH="${SCENARIO_DIR}/scenarios"
TeamCity 中的錯誤是|./k6-run-all.sh: line 12: syntax error: bad substitution
請注意,在本地運行時,我沒有收到此錯誤,並且場景路徑已正確提取。 但是當我在 TeamCity(在 Docker 上運行)上運行它時,它給了我上述錯誤。
我本地的場景路徑是: /Users/sonaliagrawal/Documents/antman/src/scenarios/full-card-visa
盡管錯誤是: //scenarios/full-card-visa
,但 TeamCity 中的場景路徑提取正確
嘗試的解決方案:由於在 TeamCity 中, SCENARIO_DIR 本身就是/
因此我寫了一個 if then else 來處理它,但它無助於解決替換錯誤,它只是更正了/scenarios/full-card-visa
的路徑。 我添加的代碼如下 -
SCENARIO_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
echo "Scenario directory $SCENARIO_DIR"
SCENARIO_PATH=""
if [[ "$SCENARIO_DIR" = "/" ]]; then
SCENARIO_PATH="/scenarios"
else
SCENARIO_PATH="${SCENARIO_DIR}/scenarios"
fi
參考:如果有幫助,Dockerfile 如下:
FROM loadimpact/k6:0.34.1
COPY ./src/lib /lib
COPY ./src/scenarios /scenarios
COPY ./src/k6-run-all.sh /k6-run-all.sh
WORKDIR /
ENTRYPOINT []
CMD ["sh", "-c", "./k6-run-all.sh"]
這是因為您的腳本沒有作為 bash 腳本執行。 將以下內容放在 .sh 文件的頂部。
#!/bin/bash
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.