Ho questa stringa multilinea (virgolette incluse):
abc'asdf"
$(dont-execute-this)
foo"bar"''
Come lo assegnerei a una variabile usando un heredoc in Bash?
Devo preservare le nuove righe.
Non voglio sfuggire ai personaggi nella stringa, sarebbe fastidioso ...
"EOF"
variabile double-qouted , se chiamato via eval $VAR
, farà commentare tutto il resto dello script, poiché qui $ VAR verrà visto come una riga singola ; per poter usare i #
commenti bash nello script multilinea, virgolette doppie anche variabili eval call:
nell'eval "$ VAR" `.
eval
questo metodo, ma non l'ho rintracciato poiché faceva parte di alcuni pacchetti che sono eval
alcune variabili definite nel suo file di configurazione. Messaggio di errore era: /usr/lib/network/network: eval: line 153: syntax error: unexpected end of file
. Sono appena passato a un'altra soluzione.
'EOF'
con` in the content: if the second line has
virgolette singole , con interruzioni di riga con escape con comando cd`, torno indietro: " .sh: riga X: cd: comando non trovato "; ma se doppi virgolette"EOF"
; quindi le variabili bash${A}
non vengono conservate come stringhe (vengono espanse); ma poi, le interruzioni di riga vengono mantenute - e, non ho problemi a eseguire un comando concd
in seconda riga ( e sia 'EOF' che "EOF" sembrano giocare bene anche coneval
, per eseguire una serie di comandi memorizzati in una variabile stringa ). Saluti!