2009-06-05 6 views
4

J'ai un script tcsh qui génère un fichier texte. L'une des lignes dans le fichier texte est:echo guillemets imbriqués dans tcsh

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

Notez le imbriquée ' et " et aussi le : et ; qui doivent être là.

Les codes : et ; requièrent que toute la chaîne soit entourée de guillemets. Cependant, si je fais cela, j'ai du mal à échapper aux guillemets.

La commande est:

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

Comment puis-je échapper les guillemets autour bar bar bar afin qu'ils seront imprimés correctement?

Répondre

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

ou ceci:

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

Ceux-ci devraient travailler pour l'exemple simple que vous avez donné, mais ne peuvent pas aider à ce que vous essayez de faire en fait ... en citant toujours tcsh m'a ennuyé, en particulier lorsque vous essayez de définir des alias avec un mélange de back-ticks, de guillemets et de doubles-quêtes.

averti que la deuxième forme fonctionne pour écho, mais il crée en fait trois arguments distincts sur la ligne de commande, qui sont (après l'interprétation des séquences d'échappement):

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

La première forme est celle que vous devriez utiliser.