bug-bash
[Top][All Lists]
Advanced

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

Re: Different history expansion behaivor: true `# # !xxx` vs. true `# !x


From: Eli Schwartz
Subject: Re: Different history expansion behaivor: true `# # !xxx` vs. true `# !xxx`
Date: Tue, 3 Mar 2020 16:04:02 -0500
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.4.2

On 3/3/20 2:27 PM, Chet Ramey wrote:
> On 3/2/20 9:04 PM, Clark Wang via Bug reports for the GNU Bourne Again
> SHell wrote:
>> This is from stackoverflow ( https://stackoverflow.com/questions/60166019/ ) 
>> and it looks like a bug:
>>
>> $ bash --version
>> GNU bash, version 5.0.7(3)-release (x86_64-pc-linux-gnu)
>> Copyright (C) 2019 Free Software Foundation, Inc.
>> License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
> 
> 
>> This is free software; you are free to change and redistribute it.
>> There is NO WARRANTY, to the extent permitted by law.
>> $
>> $ set -H
>> $ true `# !xxx`
>> bash: !xxx`: event not found
> 
> Well, the history comment character (#) is not found at the start of a
> word, so the rest of the line is processed for history expansion.
> 
>> $ true `# # !xxx`
> 
> The history comment character is found at the start of a word and history
> expansion skips the rest of the line.
> 
> Readline history expansion knows very little about shell syntax; in
> particular, it doesn't know backquotes. It never has.

And the quick test to show that this is the case...

$ set -H
$ true `# !xxx`
bash: !xxx`: event not found
$ true ` # !xxx`
$ true `# !!`
true `# true ` # !xxx``
$


-- 
Eli Schwartz
Arch Linux Bug Wrangler and Trusted User

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]