nuova riga in eredità che scompare nel file


12

Sto facendo eco in un file ereditario, ma le interruzioni di riga si stanno perdendo

Esecuzione di questo script

#!/bin/bash 

NAME="$1"

mkdir -p $NAME

FILE=$(cat <<SETVAR
name = "$NAME"
type = "test"
SETVAR
)

echo $FILE > $NAME/$NAME.txt

Con arg: foo, il file risulta in foo / foo.txt contenente

name = "foo" type = "test"

Qualche idea? Grazie


È su Cygwin? è il tuo risultato da un editor di testo o un gatto? in altre parole, potrebbe essere che le newline siano qui ma non mostrate (a causa delle differenze di endlines win / linux)? Hai provato ad aggiungere "\ n" s?
m4573r

ho provato a inserire \ n ma è arrivato come testo semplice. stava facendo tutto attraverso il terminale linux
joevallender il

Risposte:


13

Usa sempre le virgolette doppie per le variabili che contengono spazi bianchi:

echo "$FILE" > ...
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.