es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo definir una variable de tipo string que contenga espacios y comillas en el shell de Bash.

Un script de demostración en bash, build.sh, se muestra así:


#!/bin/bash EXTRA_FLAG="-ldflags=\"-H windowsgui\"" EXTRA_FLAG="-ldflags='-H windowsgui'" EXTRA_FLAG='-ldflags="-H windowsgui"' EXTRA_FLAG=-ldflags=\"-H windowsgui\" go build ${EXTRA_FLAG}

Quiero obtener el comando resultante como: go build -ldflags="-H windowsgui", pero ninguna de estas variables funciona como se espera, dando como resultado:

go build '-ldflags="-H' 'windowsgui"'
go build '-ldflags=\'\''-H' 'windowsgui\'\'\''
go build '-ldflags="-H' 'windowsgui"'
go build -ldflags=-H windowsgui

Parece que las comillas simples auto-generadas (') rompen el comando, ¿entonces cuál es la forma correcta de definir una variable de esta manera?

Tags:  

Answer

  1. Avatar for davy.ai

    Para definir una variable como -ldflags="-H windowsgui" en Bash, puedes usar cualquiera de los siguientes formatos:

    EXTRA_FLAG="-ldflags=-H windowsgui"
    #o
    EXTRA_FLAG='-ldflags=-H windowsgui'
    #o
    EXTRA_FLAG=-ldflags=-H\ windowsgui
    

    Asegúrate de escapar cualquier espacio con el símbolo \, como se muestra en el tercer ejemplo, para asegurar que la variable se interprete correctamente en el comando.

Comments are closed.