Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: inconsistency between bash and zsh subshells



On 5/23/22, Matt Zagrabelny <mzagrabe@xxxxxxxxx> wrote:
> On Mon, May 23, 2022 at 12:01 PM Mikael Magnusson <mikachu@xxxxxxxxx>
> wrote:
>
>> On 5/23/22, Matt Zagrabelny <mzagrabe@xxxxxxxxx> wrote:
>>
>> > Why does the subshell in zsh get executed even though the conditional
>> > branch is not? That is, the "touch"-ing of /tmp/FOO.
>>
>> You're most likely using a poorly written prompt theme and/or thing
>> that updates your terminal title.
>
>
> Haha. Probably!
>
>
>
>> Try disabling that code and try
>> again if so.
>>
>
> Yup - that was it. I removed my .zshrc and it works as expected.
>
> Thanks for the hint! Time to figure out what poorly written part of my
> .zshrc is to blame.

It will probably be something involving print -P and \a or \007 in
something named preexec. If you change $1 in that to \$1 it is more
likely to work, though it's of course hard to say without seeing the
particular code. If you instead remove any setopt printsubst it should
work fine without modifying the preexec function. (only do one of
these changes). Basically what's happening is you're expanding the
string to put in the title twice, resulting in things like $()
actually being executed which is usually not great.

-- 
Mikael Magnusson




Messages sorted by: Reverse Date, Date, Thread, Author