tech-userlevel archive

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

Re: interactive shell detection in shrc



On Tue, Sep 24, 2024 at 05:01:18 +0700, Robert Elz wrote:

>   | sh .shrc allows you to check that .shrc has no failures, but you cannot
>   | test how it affected the shell (as opposed to sourcing it).
> 
> That's the point, to test what would happen if it were sourced,
> to prevent undesired actions from affecting a real shell, before
> a new version actually gets installed.
> 
>   | sh .shrc is a _non_ interactive shell
> 
> Yes, but sh -i .shrc isn't.
> 
>   | and return in the non-interacive branch is ingored,
> 
> In most shells, yes, but not all, relying on that is not portable,
> and there really isn't a good reason to supply non-portable code
> fragments like that.
> 
>   | so shell falls through to the interactive-only part.
> 
> which means a test intended to see what happens for non-interactive
> shells doesn't show that at all, which your average user might not
> understand - spending time trying to understand a "problem" which
> doesn't actually exist.
> 
> Note that it is not necessarily the case that what is in that file
> is only desired to effect interactive shells, I use it precisely to
> add things to non-interactive shells, even more than interactive ones.
> 
>   | I would say win-win :)
> 
> I wouldn't go that far, but note I didn't actually object to making
> the change, just pointing out why the code is written as it was.

I understand why it was written that way.  I thought that being a bit
more readable if less robust is better than being prissy.  I retract
my proposal.  Thank you for your input.

I also wanted to drop the ${1+"$@"} workaroud for the v7 shell bug
which I'm pretty sure we are not going to hit in this day and age on a
NetBSD system, but I won't to get down that rabbit hole.

-uwe


Home | Main Index | Thread Index | Old Index