[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: escaping ! in quoted string gives wrong result
From: |
Paul Jarc |
Subject: |
Re: escaping ! in quoted string gives wrong result |
Date: |
Fri, 18 Jun 2004 13:19:59 -0400 |
User-agent: |
Gnus/5.110003 (No Gnus v0.3) Emacs/21.3 (gnu/linux) |
Andy Isaacson <adi@hexapodia.org> wrote:
> Ergo, ! is treated specially in double-quotes.
By the interactive history substitutor, yes, but not by the command
language parser, which is what Chet was saying, I think, and which is
exactly your problem: "\!" remains "\!", just as "\x" remains "\x".
"\$" is treated specially, and becomes "$".
> The problem arises when attempting to include a literal ! in a
> double-quoted string;
Right. So don't do that when history is enabled. This works:
echo "foo"\!"bar"
> I'm claiming that Bash should do the same thing that zsh and csh do, and
> interpret `a.out "\!foo"' in the most useful way
That would be incompatible with other sh implementations, including
FreeBSD, NetBSD, OpenBSD, pdksh, and Solaris.
paul