Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

echo nested quotation marks in tcsh

I have a tcsh script that generates a text file. One of the lines in the text file is:

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

Note the nested ' and " and also the : and ; that must be there.

The : and ; require the whole string to be surrounded by quotation marks. However, if I do that, I have trouble escaping the quotation marks.

The command is:

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

How can I escape the quotation marks around bar bar bar so that they get printed correctly?

like image 819
Nathan Fellman Avatar asked Mar 01 '23 15:03

Nathan Fellman


1 Answers

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

or this:

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

These should work for the simple example you gave, but may not help for what you're actually trying to do... Quoting in tcsh always annoyed me, especially when trying to define aliases with a mix of back-ticks, quotes, and double-qutes.

Be warned that the second form works for echo, but it actually creates three separate arguments on the command line, which are (after interpreting the escape sequences):

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

The first form is the one you should use.

like image 145
Andy White Avatar answered Mar 06 '23 10:03

Andy White