Резюме: Попытка создать автоматизированный сценарий для создания групп переменных на основе списка ввода в текстовом файле. Скрипт работает до сих пор, за исключением записей, в которых есть пробелы. (Это не под моим контролем, я знаю, что никогда не назову ничего с пробелами, но что я могу сделать?) По какой-то причине команда вставки кажется странной для записей с пробелами в них, или, по крайней мере, я думаю это делает паста, учитывая результат эхо-команд, которые вы видите выше. Я упускаю что-то очевидное? В связи с этим в аналогичном сценарии казалось, что символы «/» удаляются, если только я не удваиваю их, например «//». Что я делаю не так?
#!/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"
Я не могу понять вывод примера; пожалуйста, используйте формат блока кода (как вы сделали со сценарием), чтобы сохранить его формат. Что касается самого скрипта, то почему вы вообще используете paste? Он предназначен для объединения нескольких файлов, но здесь у вас только один. Кроме того, ваше цитирование является обратным; в оболочке вам не нужно заключать фиксированные строки в кавычки (если они не содержат специальные символы), но вы должен заключаете ссылки на переменные в двойные кавычки, чтобы избежать странного синтаксического анализа пробелов и т. д. Поэтому используйте echo "$vfile vfile" или echo "$vfile" vfile вместо echo $vfile "vfile".
Извините, ребята, что долго не отвечал. Работа повела меня в несколько других направлениях. @markp-fuso содержимое LaunchPointVariableGroups.txt — это просто имена различных групп переменных. Это может быть что угодно, просто список групп, построчно, например var-group1, var-group2, var-group3 и так далее.
@GordonDavisson Это был просто выходной ответ команд. По сути, это было обрезание первых нескольких слов в строке и ошибка в последнем. С помощью shellCheck я обнаружил, что ошибки были в основном связаны с тем, что не использовался флаг -r с командами чтения, которые искажают обратную косую черту, а также не использовались двойные кавычки, которые вызывали «подстановку и разделение». Спасибо вам обоим за то, что уделили время проверке вопроса!





Я обнаружил, используя shellCheck, что ошибки были в основном из-за того, что не использовался флаг -r с командами чтения, которые искажают обратную косую черту, а также не использовались двойные кавычки, которые вызывали «подстановку и разделение»
пожалуйста, обновите вопрос с примерами данных из файла
LaunchPointVariableGroups.txt; также обновите вопрос, указав а) фактический вывод вашего скрипта (например, где вывод командecho?) и 2) ожидаемый вывод.