On Thu, Sep 17, 2020 at 9:33 AM Ottavio Caruso
<[email protected]> wrote:
> On 17/09/2020 00:58, Ashlen wrote:
>> On 20/09/15 05:49PM, Ottavio Caruso wrote:
>>>
>>> Maybe it's just because OpenBSD sh is just ksh in disguise or there
>>> might be other reasons that I obviously don't know.
>>
>> Yep, you're right. They share the same inode.
>>
>> ls -li /bin/{,k}sh
>>
>> 77862 -r-xr-xr-x 3 root bin 613656 Sep 15 12:10 /bin/ksh
>> 77862 -r-xr-xr-x 3 root bin 613656 Sep 15 12:10 /bin/sh
>>
>> sh(1) also attests to this.
>
> Thanks but I gave that for granted. My question was about not
> exporting PS1 to subshells. In theory, it shouldn't be exported but
> it does get exported if one uses ENV=.kshrc vs sourcing .kshrc.
You've said that you're now sourcing "$HOME/.kshrc" if "SKSH_VERSION" exists.
You could add the sourcing of "$HOME/.shrc" if "$SH_VERSION" exists.
Or you could export ENV and use a case-esac of this kind:
case "$0" in
*ksh)
...
PS1='\u@\h:\w\$ '
;;
*sh)
...
PS1='${USER}@${HOST}:${PWD}\$ '
;;
esac