bug-bash
[Top][All Lists]
Advanced

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

Re: ! history expansion occurs within arithmetic substitutions


From: Dale R. Worley
Subject: Re: ! history expansion occurs within arithmetic substitutions
Date: Tue, 08 Aug 2023 15:11:22 -0400

Zachary Santer <zsanter@gmail.com> writes:
> Description:
> Similarly, history expansion occurs within arithmetic substitutions. This
> will never, ever be what the user wants. And now I know how to make it not
> happen.
>
> Repeat-By:

> $ set +o histexpand

Well, yes, if you turn off history expansion, then it won't occur within
arithmetic substitutions.

But I would not take it as given that nobody would ever want to use
history expanstion within an arithmetic substitution.  Let me concoct an
example:

    $ i=4
    $ echo (( i+1 ))
    bash: syntax error near unexpected token `('
    $ echo $(( !:3 ))
    echo $(( i+1 ))
    5
    $

(This would be more likely if "i+1" was a much more complicated
expression.)

But it seems to me that the way to avoid this is to always put a space
after "!" in arithmetic expressions.  "!" followed by space is never
subject to history expansion.

More troublesome, I think, are several variable substitutions which
include "!" followed by a name.  But I doubt they're used much in
interactive mode.

Dale



reply via email to

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