echo virgolette nidificate tcsh
-
11-09-2019 - |
Domanda
Ho uno script tcsh che genera un file di testo. Una delle linee nel file di testo è il seguente:
bla bla bla 'foo foo foo "bar bar bar"': etc etc;
Si noti la '
nidificato e "
e anche il :
e ;
che deve essere lì.
Il :
e ;
richiedono l'intera stringa di essere circondato dalle virgolette. Tuttavia, se lo faccio, ho difficoltà a sfuggire le virgolette.
Il comando è:
echo "bla bla bla 'foo foo foo "bar bar bar"': etc etc;" >> outfile
Come posso sfuggire le virgolette intorno bar bar bar
in modo che essi vengono stampati correttamente?
Soluzione
echo "bla bla bla 'foo foo foo "\""bar bar bar"\""': etc etc;"
o questo:
echo "bla bla bla 'foo foo foo "\"bar bar bar\""': etc etc;"
Questi dovrebbero lavorare per il semplice esempio che ha dato, ma non può aiutare per quello che si sta effettivamente cercando di fare ... Citando in tcsh sempre mi ha infastidito, soprattutto quando si cerca di definire gli alias con un mix di back-tick, citazioni, e doppi-qutes.
Sia avvertito che la seconda forma lavora per l'eco, ma in realtà crea tre argomenti separati sulla riga di comando, che sono (dopo interpretare le sequenze di escape):
- bla bla bla 'pippo pippo pippo "bar
- bar
- bar " ': etc etc;
La prima forma è quello che si dovrebbe usare.