-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Tue, May 10, 2016 at 11:20:23AM +0200, Die Optimisten wrote: > On 2016-05-10 11:18, Die Optimisten wrote: > >Hi, > > > >How can I escape a ' inside '...' > >e.g. perl -e 'print '$ and a' ' # I don't want to use "
The short answer is... you can't. Quoting from the bash man page: "Enclosing characters in single quotes preserves the literal value of each character within the quotes. A single quote may not occur between single quotes, even when preceded by a backslash" The long answer is... this woldn't be a shell if there were no useful workarounds. The trick in this situation is just to break up the string. Be aware that to a shell, everything is text, so foo, "foo" and 'foo' are all (in some way) equivalent. This would work: perl -e 'print '"'"'$ and a'"'"' ' # I don't want to use " That is, you glue your string out of several parts, here separated by spaces; only the embedded ' are quoted by "": 'print ' "'" '$ and a' "'" ' ' Of course, in practice you wouldn't do that blind transform, but optimize it a bit, e.g.: "print '"'$'" and ax ' " I.e. just use the '' where you need 'em Then, you can escape the $ whithin the "" with a \ Lots of ways, use whatever is most readable. hth - -- tomás -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iEYEARECAAYFAlcxtVcACgkQBcgs9XrR2kZmlgCffAw1D1VN5+S6M9QlMtzb+egm 9FcAn1VzNSS8Y0R+APMmc8r0fKUkIeV8 =F9uz -----END PGP SIGNATURE-----