[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Different history expansion behaivor: true `# # !xxx` vs. true `# !x
From: |
Chet Ramey |
Subject: |
Re: Different history expansion behaivor: true `# # !xxx` vs. true `# !xxx` |
Date: |
Tue, 3 Mar 2020 14:27:30 -0500 |
User-agent: |
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 |
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.
--
``The lyf so short, the craft so long to lerne.'' - Chaucer
``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRU chet@case.edu http://tiswww.cwru.edu/~chet/