Файл поиска Bash для шаблона, замените шаблон на код, содержащий имя ветви Git
У меня есть файл README.md, где я хотел бы заменить текстовый идентификатор{{CODESHIP_CODE}}
со строкой кода - в частности, фрагмент кода изображения состояния сборки, который включает имя ветви git.
Я думаю, это будет выглядеть примерно так ...
Поместите текущую веткуgit rev-parse --abbrev-ref HEAD
в переменной bashПоместите шаблон / строку для поиска в переменную. Этот шаблон / строка просто используется в качестве идентификатора, чтобы быстро найти место, где в файле README.md я хочу вывести свой код изображения состояния сборки.использованиеsed
(возможно,grep
) выполнить поиск в файле README.md указанного{{CODESHIP_CODE}}
pattern / string и замените его кодом состояния образа сборкиКод, который я написал, выглядит следующим образом:
#!/bin/bash
# Get the current branch
function git_branch {
git rev-parse --abbrev-ref HEAD
}
# Set variable to current branch
branch=$(git_branch)
# Define the pattern to search for
# This pattern/string gets replaced with the build status image code
id="{{CODESHIP_CODE}}"
# Create build status image code
# Inject the $branch variable into the correct location
codeship_build_status="[ ![Codeship Status for ExampleGitHubUser/ExampleRepo](https://codeship.com/projects/a99d9999-9b9f-9999-99aa-999a9a9a9999/status?branch=$branch)](https://codeship.com/projects/999999)"
# Find the pattern to replace
# Then replace it with the build status image
sed -i -e "s/{{CODESHIP_CODE}}/$codeship_build_status/g" README.md
Проблема в том, что я продолжаю получать следующую ошибку:
sed: 1: "s/{{CODESHIP_CODE}}/[ ! ...": bad flag in substitute command: 'a'
Я не уверен, как решить эту проблему, чтобы скрипт работал правильно. Любая помощь будет принята с благодарностью.