string - Bash 字符串参数打印有不必要的撇号
问题描述
我正在 ubuntu 18 操作系统上编写 BASH 脚本。我正在对字符串进行操作(追加、剪切),之后,我想将其用作 docker 命令的参数。问题是它返回带有撇号,我只需要没有这些的值。
if [[ "${TESTIM_LABEL}" =~ "," ]]; then
IFS=','
read -a strarr <<< "$TESTIM_LABEL"
LABELS=""
prefix=" --label "
for val in "${strarr[@]}";
do
LABELS+=${prefix}${val}
echo "$LABELS"
done
printf "$LABELS"
else
printf "im outside the IF"
LABELS="--label ${TESTIM_LABEL}"
fi
在这个 IF 语句上,当条件为真并且我在 IF 内时,打印的 LABELS 变量的值不带撇号,但是当我稍后将此参数用作较长命令的一部分时,它会插入撇号
例子:
RESULT=$(docker run --rm -e rpLaunch="${RP_LAUNCH_NAME}" -e rpTeam="${RP_TEAM}" -e rpUuid="${rp_uuid}" -e rpBranchNameTag="${BRANCH_NAME}" -e rpDescription="${RP_DESCRIPTION}" -v $2:/opt/testim-runner ${TESTIM_DOCKER} \
--token ${TESTIM_TOKEN} \
--project "${TESTIM_PROJECT}" \
${LABELS}
输出将是(插入到 IF "xxx,yyy" 之后):
docker run --rm -e rpLaunch=master/testim/@arion_ab_testing -e rpTeam=SocialArion -e rpUuid= -e rpBranchNameTag=master -e rpDescription=http://jenkins-prod-search.internalk.com/job/ui-pull-request/3127/ -v /home/centos/jenkins/workspace/ui-pull-request:/opt/testim-runner testim/docker-cli --token Dt9kFOtOhNcMum2gZjvnapOpGyq8vgreEnZOJF2nR9SeCJaRGE --project bJFghGy6Jo9yvtOO3ZiO ' --label xxx --label yyy'
'--label xxx --label yyy'周围的撇号 需要删除。
我怎么做?
解决方案
像这样删除它们:
test="'test'"
#with
$ echo "$test"
'test'
#without
$ echo "${test//\'}"
test
推荐阅读
- python - 无法在 PySpark 中导入镶木地板数据
- android - 如何使用 React Hooks 使用单个处理函数在 React Native 中处理表单
- python - 如何将带有 .json 扩展名的模型转换为 onnx
- python - 将数组与可变标准差的内核卷积
- python - 如果 B[i, j] == 1,则从 A 生成包含每列 A 行平均值的新矩阵,其中 B 是邻接矩阵
- java - 我想从此方法中删除本机查询。我该怎么做?
- python - 错误:无法为使用 PEP 517 且无法直接安装的 pyopencl 构建轮子
- c# - 是否有一个 Winforms 文本框事件可以在文本框被访问且不一定被更改时触发?
- javascript - 生成代码来表示托尼·斯塔克钯颈效应
- web - PerformanceResourceTiming.transferSize 在某些网页中返回 0