Команда «Вставить», удаляющая вводимые символы при наличии пробелов — создание групп переменных в конвейерах Az

Резюме: Попытка создать автоматизированный сценарий для создания групп переменных на основе списка ввода в текстовом файле. Скрипт работает до сих пор, за исключением записей, в которых есть пробелы. (Это не под моим контролем, я знаю, что никогда не назову ничего с пробелами, но что я могу сделать?) По какой-то причине команда вставки кажется странной для записей с пробелами в них, или, по крайней мере, я думаю это делает паста, учитывая результат эхо-команд, которые вы видите выше. Я упускаю что-то очевидное? В связи с этим в аналогичном сценарии казалось, что символы «/» удаляются, если только я не удваиваю их, например «//». Что я делаю не так?

#!/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 Prod DiscoveryServices" и "ABC DEF Prod LMNOPConfig"

пожалуйста, обновите вопрос с примерами данных из файла LaunchPointVariableGroups.txt; также обновите вопрос, указав а) фактический вывод вашего скрипта (например, где вывод команд echo?) и 2) ожидаемый вывод.

markp-fuso 17.03.2022 20:52

Я не могу понять вывод примера; пожалуйста, используйте формат блока кода (как вы сделали со сценарием), чтобы сохранить его формат. Что касается самого скрипта, то почему вы вообще используете paste? Он предназначен для объединения нескольких файлов, но здесь у вас только один. Кроме того, ваше цитирование является обратным; в оболочке вам не нужно заключать фиксированные строки в кавычки (если они не содержат специальные символы), но вы должен заключаете ссылки на переменные в двойные кавычки, чтобы избежать странного синтаксического анализа пробелов и т. д. Поэтому используйте echo "$vfile vfile" или echo "$vfile" vfile вместо echo $vfile "vfile".

Gordon Davisson 17.03.2022 21:28

Извините, ребята, что долго не отвечал. Работа повела меня в несколько других направлениях. @markp-fuso содержимое LaunchPointVariableGroups.txt — это просто имена различных групп переменных. Это может быть что угодно, просто список групп, построчно, например var-group1, var-group2, var-group3 и так далее.

Akira_Yam 29.03.2022 21:03

@GordonDavisson Это был просто выходной ответ команд. По сути, это было обрезание первых нескольких слов в строке и ошибка в последнем. С помощью shellCheck я обнаружил, что ошибки были в основном связаны с тем, что не использовался флаг -r с командами чтения, которые искажают обратную косую черту, а также не использовались двойные кавычки, которые вызывали «подстановку и разделение». Спасибо вам обоим за то, что уделили время проверке вопроса!

Akira_Yam 29.03.2022 21:03
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
4
38
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я обнаружил, используя shellCheck, что ошибки были в основном из-за того, что не использовался флаг -r с командами чтения, которые искажают обратную косую черту, а также не использовались двойные кавычки, которые вызывали «подстановку и разделение»

Другие вопросы по теме