[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Shell - escapes



Hi,

> I think it would be useful to have a (new, meta) quote, which fully hides
> contents from bash-interpretion

The '' quote does this. It's simply impossible that an end quotation mark
can be distinguished from a literal quotation mark.
If there would be escaping of literal string end marks, then you get even
more interpretation and conversion.

So the solution with two kinds of quotation marks is the most simple,
if you do not want to go to FORTRAN strings with length number and
Hollerith constant:  5Hhello

Unambiguous, ingenious, uncomfortable.


The best alternative i know of would be an adjustable end mark.
Before the string begins, one would adjust the environment to a character
or string which surely is not part of the literal text.

The Here Documents of the shell are an example of this design pattern.
Get some unlikely text:

  $ uuidgen
  2bf661c8-b400-43f3-addc-d2d75f018013

Announce and use it as delimiter:

  $ wc <<2bf661c8-b400-43f3-addc-d2d75f018013
  ... text ...
  2bf661c8-b400-43f3-addc-d2d75f018013

Regrettably, Here Documents let the shell fiddle with their text.

  $ wc -c <<x
  $(echo hello)
  x
  6

So this is not a way to express arbitrary literal text.


> Would it be useful / possible to change

One can switch from one shell to the other, one can even program an
own shell. But i see very few chance that bash or dash upstream would
accept any change or addition attempt about quoting. It is just too
fundamental and there are viable ways to express a literal string.


Have a nice day :)

Thomas


Reply to: