Question

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

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

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

Le : et ; nécessitent toute la chaîne d'être entouré par des guillemets. Cependant, si je fais ça, 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 obtiennent l'impression?

Était-ce utile?

La solution

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 peut pas aider à ce que vous essayez de faire en fait ... en citant toujours tcsh m'a ennuyé, surtout lorsqu'on tente de définir des alias avec un mélange de back-tiques, citations, et double-qutes.

Il faut savoir 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 bar « foo foo foo »
  • bar
  • bar " ': etc etc;

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top