Ho diversi file di testo in cui ho introdotto variabili di shell ($ VAR1 o $ VAR2 per esempio).Come sostituire le variabili di shell in file di testo complessi
Vorrei prendere quei file (uno per uno) e salvarli in nuovi file in cui tutte le variabili sarebbero state sostituite.
Per fare questo, ho usato il seguente script di shell (trovato su StackOverflow):
while read line
do
eval echo "$line" >> destination.txt
done < "source.txt"
Questo funziona molto bene sui file di base.
Ma sui file più complessi, il comando "eval" non troppo:
linee che iniziano con "#" sono saltati
file XML parsing risultati in tonnellate di errori
C'è un modo migliore per farlo? (In script di shell ... So che questo è fatto facilmente con Ant per esempio)
Cordiali saluti
Grande! Ma funziona solo per le variabili di ambiente. Come posso farlo funzionare con le variabili dichiarate nel mio script .sh? – Ben
@Ben: usa 'export' (prima di chiamare envsubst) per ogni variabile che vuoi usare in envsubst – tlo
'envsubst' è parte di [GNU gettext] (https://www.gnu.org/software/gettext/manual/ html_node/envsubst-Invocation.html) – Andy