存在空格时粘贴命令删除输入字符 - 在 Az 管道中创建变量组

Paste Command removing input characters when spaces are present - Creating VariableGroups in Az pipelines

摘要: 尝试创建一个自动脚本以根据文本文件中的输入列表创建变量组。到目前为止,脚本可以正常工作,但其中包含空格的条目除外。 (这不在我的控制之下,我知道我永远不会用空格命名任何东西,但我能做什么?)无论出于何种原因,粘贴命令似乎对其中包含空格的条目感到奇怪,或者至少我认为鉴于您在上面看到的 echo 命令的结果,它正在执行此操作。我错过了一些明显的东西吗?在相关说明中,在类似的脚本中,它似乎删除了“/”符号,除非我像“//”一样加倍使用它们。我做错了什么?

#!/bin/bash

echo "Enter your PAT"
read PAT
echo "Project Name"
read ProjName

for VarGroup in LaunchPointVariableGroups.txt; do
    vfile="$(basename -- $VarGroup)"
    paste $vfile | while read groupname; do
      echo "$groupname" "groupname"
      echo $vfile "vfile"
      echo $VarGroup "VarGroup"
      echo $ProjName "ProjName"

      AZURE_DEVOPS_EXT_PAT=$PAT az pipelines variable-group create --name $groupname --description $groupname --variables a=a --project "$ProjName"
    done
done

输出为:

Examples from AI knowledge base: https://aka.ms/cli_ref Read more about the command in reference docs groupnamerod DiscoveryServices" VariableGroups.txt vfile VariableGroups.txt VarGroup DevOps Poc ProjName DEF Prod DiscoveryServices"Prod DiscoveryServices"

Examples from AI knowledge base: https://aka.ms/cli_ref Read more about the command in reference docs groupnamerod LMNOPConfig" VariableGroups.txt vfile VariableGroups.txt VarGroup DevOps Poc ProjName DEF Prod LMNOPConfig"s: DEF Prod LMNOPConfig"

在这样的行中: “ABC DEF 产品发现服务” 和“ABC DEF Prod LMNOPConfig”

我发现,通过使用 shellCheck,错误主要是由于没有使用 -r 标志和读取命令,这会破坏反斜杠,也没有使用双引号导致“globbing and splitting”