2009-06-05 10 views
4

Ich habe ein Tcsh-Skript, das eine Textdatei generiert. Eine der Leitungen in der Textdatei ist:echo verschachtelte Anführungszeichen in tcsh

bla bla bla 'foo foo foo "bar bar bar"': etc etc; 

Hinweis die verschachtelten ' und " und auch die : und ;, dass es sein muss.

Die : und ; erfordern die ganze Zeichenfolge in Anführungszeichen eingeschlossen werden. Wenn ich das tue, habe ich Probleme, die Anführungszeichen zu umgehen.

Der Befehl lautet:

echo "bla bla bla 'foo foo foo "bar bar bar"': etc etc;" >> outfile 

Wie kann ich die Anführungszeichen um bar bar bar entkommen, so dass sie korrekt gedruckt werden?

Antwort

8
echo "bla bla bla 'foo foo foo "\""bar bar bar"\""': etc etc;" 

oder dies:

echo "bla bla bla 'foo foo foo "\"bar bar bar\""': etc etc;" 

Diese sollten Sie für das einfache Beispiel arbeiten gab, aber helfen kann, nicht für das, was Sie tatsächlich in tcsh ... Zitiert mich immer geärgert zu tun versuchen, vor allem, wenn man versucht, Aliase mit einer Mischung aus Back-Ticks, Anführungszeichen und Double-Quites zu definieren.

Seien Sie gewarnt, dass die zweite Form für Echo funktioniert, aber es schafft tatsächlich drei separate Argumente auf der Kommandozeile, die sind (nach der Escape-Sequenzen zu interpretieren):

  • bla bla bla ‚foo foo foo" bar
  • bar
  • bar "': usw. usw .;

Die erste Form ist die, die Sie verwenden sollten.