2013-06-19 9 views
5

Sto provando a scrivere uno script che userà echo e write/append in un file. Ma ho "" nella sintassi già nelle stringhe .. dire ..Come posso scrivere e aggiungere usando il comando echo a un file

echo "I am "Finding" difficult to write this to file" > file.txt 
echo "I can "write" without double quotes" >> file.txt 

Qualcuno può per favore aiutatemi a capire questo, molto apprezzato.

BR, SM

risposta

7

Se si desidera avere le citazioni, allora si deve fuggire utilizzando la barra rovesciata.

echo "I am \"Finding\" difficult to write this to file" > file.txt echo 
echo "I can \"write\" without double quotes" >> file.txt 

Lo stesso vale se si vuole cioè anche di scrivere la \ in sé, in quanto può causare effetti indesiderati. Quindi devi usare \\

Un'altra opzione sarebbe usare "" "invece di virgolette.

echo 'I am "Finding" difficult to write this to file' > file.txt echo 
echo 'I can "write" without double quotes' >> file.txt 

Tuttavia, in questo caso substition variabile non funziona, quindi se si desidera utilizzare le variabili si devono mettere loro al di fuori.

echo "This is a test to write $PATH in my file" >> file.txt 
echo 'This is a test to write '"$PATH"' in my file' >> file.txt 
+0

Grazie per il vostro aiuto. In precedenza ho dimenticato di parlare di una singola citazione. Sì, ho provato la citazione singola e questo ha funzionato per me ma non ha raggiunto lo scopo. Cercando di usare il carattere di escape backslash .. Grazie, SM – user2500742

+0

Non dimenticare di cambiare/accettare le risposte che ti hanno aiutato. – Devolus

+0

Grazie Ragazzi, usando la barra rovesciata ora è fatto, e anche adempiere al mio scopo. Ragazzi, semplicemente fantastico. Saluti, SM – user2500742

2

Se si dispone di caratteri speciali, è possibile li fuggire con un backslash per usarli come necessario:

echo "I am \"Finding\" difficult to write this to file" > file.txt 
echo "I can \"write\" without double quotes" >> file.txt 

Tuttavia, è anche possibile utilizzare la funzione "EOF" della shell con il comando tee, che è veramente bello per la scrittura di ogni sorta di cose:

tee file.txt <<EOF 

I am "Finding" difficult to write this to file 
I can "write" without double quotes 
EOF 

che scriverà praticamente qualsiasi contenuto che si desidera direttamente al file, e sfuggire caratteri speciali fino yo si arriva allo EOF.

+0

Questa è una bella spiegazione, grazie e cordiali saluti :) – user2500742

Problemi correlati