On Sat, Dec 21, 2024, at 1:52 PM, Greg Wooledge wrote:
> On Sat, Dec 21, 2024 at 09:56:15 -0800, Eric Pruitt wrote:
>> You need to escape one of the types of quotes. Double quotes is
>> generally simpler:
>
> Only in this restricted case.  Using double quotes as the outer layer
> means you have to backslash-escape *lots* of other characters inside
> the payload: double quotes, dollar signs, backticks, and backslashes
> at the very minimum.

Including exclamation points when history expansion is enabled in
non-POSIX mode!  Except those backslashes aren't removed!!

        $ set -H +o posix
        $ echo "hello!!"
        echo "helloset -H +o posix"
        helloset -H +o posix
        $ echo "hello\!!"
        hello\!!

-- 
vq!!!

Reply via email to