Bash Suchdatei nach Pattern, Ersetze Pattern durch Code mit Git Branch Name

Ich habe eine README.md-Datei, in der ich eine Textkennung ersetzen möchte{{CODESHIP_CODE}} mit einer Codezeile - speziell einem Code-Snippet für das Build-Status-Image, das den Namen des Git-Zweigs enthält.

Ich denke, es würde ungefähr so aussehen ...

Legen Sie den aktuellen Zweiggit rev-parse --abbrev-ref HEAD in Bash-Variable Platzieren Sie das Muster / die Zeichenfolge, nach dem / der in einer Variablen gesucht werden soll. Dieses Muster / diese Zeichenfolge wird nur als Bezeichner verwendet, um schnell zu ermitteln, wo in der Datei README.md der Build-Status-Image-Code ausgegeben werden soll.Verwendensed (möglicherweisegrep), um die Datei README.md nach dem angegebenen @ zu durchsuche{{CODESHIP_CODE}} pattern / string und ersetzen Sie es durch den Build-Image-Statuscode

Der Code, den ich geschrieben habe, sieht folgendermaßen aus:

#!/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

Das Problem ist, dass ich immer wieder den folgenden Fehler erhalte:

sed: 1: "s/{{CODESHIP_CODE}}/[ ! ...": bad flag in substitute command: 'a'

Ich bin nicht sicher, wie ich dieses Problem beheben soll, damit das Skript ordnungsgemäß funktioniert. Jede Hilfe wäre sehr dankbar.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage