tag - tipos de etiquetas en git
Bash Search File for Pattern, Reemplazar patrón con código que incluye nombre de rama de Git (1)
No puede usar una cadena de reemplazo que contenga el delimitador sin guardar. Escape los delimitadores en la cadena, o cambie a los diferentes.
${codeship_build_status///////} # escape
# or
s%{{CODESHIP_CODE}}%$codeship_build_status%g #
Asegúrese de que el nuevo delimitador no esté incluido en la cadena.
Tengo un archivo README.md en el que me gustaría reemplazar un identificador de texto {{CODESHIP_CODE}}
con una línea de código, específicamente un fragmento de código de imagen de estado de compilación que incluye el nombre de la rama de git.
Estoy pensando que se vería algo como esto ...
- Coloque la rama actual
git rev-parse --abbrev-ref HEAD
en variable bash - Coloque el patrón / cadena para buscar en una variable. Este patrón / cadena simplemente se usa como un identificador para localizar rápidamente en qué lugar del archivo README.md quiero mostrar mi código de imagen de estado de compilación.
- Use
sed
(posiblementegrep
) para buscar en el archivo{{CODESHIP_CODE}}
patrón / cadena{{CODESHIP_CODE}}
especificado y reemplácelo con el código de estado de la imagen de compilación.
El código que escribí se ve así:
#!/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
El problema es que sigo recibiendo el siguiente error:
sed: 1: "s/{{CODESHIP_CODE}}/[ ! ...": bad flag in substitute command: ''a''
No estoy seguro de cómo resolver este problema, para que la secuencia de comandos funcione correctamente. Cualquier ayuda sería muy apreciada.