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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top