[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
signature.asc
Description: OpenPGP digital signature