Sto scrivendo uno script in bash, e ad un certo punto ho necessità di sostituire una data riga in un file di testo con una stringa contenente il contenuto di una variabile d'ambiente. Per fare ciò ho usato questa sintassi:
codice:
sed s/BADLINE/EMERGE=\"${EMERGE}\"/ file
Se la variabile EMERGE non contiene spazi non ci sono problemi, ma se invece ce ne sono il comando genera un errore. Infatti, da quanto ho visto, sed vuole che gli spazi, come le virgolette, siano preceduti da un "\".
Ho pensato di trasformare il valore della variabile aggiungendo un "\" davanti a ogni spazio. Per farlo ho provato questa sintassi:
codice:
sed s/\ /\\\ / file
e anche questa:
codice:
NEWVAR=$(echo ${${EMERGE}//\ /\\\ })
ma in entrambi i casi non viene prodotta alcuna sostituzione.
Dove sbaglio???
Grazie.