【发布时间】:2021-05-20 10:08:09
【问题描述】:
我正在尝试使用 shell 脚本通过 docker 映像运行 maven
在shell中运行docker时,我使用sed去掉单引号:
bash 脚本:
docker run $(echo "-e CUCUMBER_FILTER_TAGS=$CUCUMBER_FILTER_TAGS $RUN_ARGUMENT $INPUT_MAVEN_COMMAND $MAVEN_ARGUMENTS $AUTHENTICATION" | sed "s/'//g")
被翻译成
docker run -e 'CUCUMBER_FILTER_TAGS="@bidrag-person' and not '@ignored"' --rm -v /home/deployer/actions-bidrag-cucumber-backend/ws/bidrag-cucumber-backend/bidrag-cucumber-backend:/usr/src/mymaven -v /home/deployer/.m2:/root/.m2 -w /usr/src/mymaven maven:3.6.3-openjdk-15 mvn test -e -DUSERNAME=j104364 -DINTEGRATION_INPUT=json/integrationInput.json -DUSER_AUTH=*** -DTEST_AUTH=*** -DPIP_AUTH=***
如何删除 CUCUMBER_FILTER_TAGS 周围和内部的那些似乎不知从何而来的多余单引号?
我无法解决这个问题,正在寻求解决方案。此脚本 (https://github.com/navikt/bidrag-maven/blob/feature/filter.tags/cucumber-backend/cucumber.sh) 正在 GitHub 上的 cron 作业中运行(GitHub Actions,GitHub 工作流程的一部分)
其他变量(不是此脚本的输入)在 GitHub 工作流中设置为来自 GitHub 机密的环境变量
AUTHENTICATION="-DUSER_AUTH=$USER_AUTHENTICATION -DTEST_AUTH=$TEST_USER_AUTHENTICATION -DPIP_AUTH=$PIP_USER_AUTHENTICATION"
在 GitHub 工作流 yaml 文件中设置如下:
- uses: navikt/bidrag-maven/cucumber-backend@v6
with:
maven_image: maven:3.6.3-openjdk-15
username: j104364
env:
USER_AUTHENTICATION: ${{ secrets.USER_AUTHENTICATION }}
TEST_USER_AUTHENTICATION: ${{ secrets.TEST_USER_AUTHENTICATION }}
PIP_USER_AUTHENTICATION: ${{ secrets.PIP_USER_AUTHENTICATION }}
【问题讨论】:
-
命令替换本身和其中的
echo命令都没有引入文字单引号。事实上,它们来自其他东西,大概反映了扩展整个docker命令的逻辑结果。 -
您要比较的是否是
set -x输出并在其中看到单引号?
标签: bash docker shell github-actions