Wrong expansion of ~/

Brian Inglis Brian.Inglis@SystematicSw.ab.ca
Tue Aug 25 12:58:25 GMT 2020


On 2020-08-25 01:15, Morten Kjærulff via Cygwin wrote:
> On Mon, Aug 24, 2020 at 10:41 PM Brian Inglis wrote:
>>
>> On 2020-08-24 06:36, Morten Kjærulff via Cygwin wrote:
>>> On Mon, Aug 24, 2020 at 11:52 AM Thomas Wolff wrote:
>>>> Am 24.08.2020 um 10:05 schrieb Morten Kjærulff via Cygwin:
>>>>> I have a script that starts several tmux panes with my favorite commands.
>>>>> In some (*some* and only *sometimes*) of the panes I see:
>>>>>
>>>>> -bash: /home/xxxxxP/.git-completion.bash: No such file or directory
>>>>> -bash: /home/xxxxxP/.git-prompt.sh: No such file or directory
>>>>>
>>>>> My .bashrc has:
>>>>>
>>>>> $ grep git .bashrc
>>>>> . ~/.git-completion.bash
>>>>> . ~/.git-prompt.sh
>>>>>
>>>>> My userid is xxxxxf (and not xxxxxP).
>>>>>
>>>>> Is this known?
>>>> What if you trace `echo $HOME; echo ~` after the `.`? I have occasional
>>>> cases where $HOME and ~ start to be different in my shell, which is
>>>> quite weird and should not happen according to bash documentation.
>>>
>>> Ok,
>>>
>>> My userid is xx00mkf.
>>>
>>>
>>> If I add:
>>>
>>> . ~/.git-completion.bash
>>> if [ ! $? = 0 ] ; then
>>>   echo "HOME=" $HOME
>>>   echo "~=" ~
>>> fi
>>>
>>> I see:
>>>
>>> -bash: /home/xx00m/.git-completion.bash: No such file or directory
>>> HOME= /home/xx00mkf
>>> ~= /home/xx00m
>>>
>>>
>>> If I add:
>>>
>>> . ~/.git-completion.bash
>>> if [ ! $? = 0 ] ; then
>>>   echo "HOME=" $HOME
>>>   echo "~=" ~
>>>   echo "~/.git-completion.bash=" ~/.git-completion.bash
>>> fi
>>>
>>> -bash: /home/xx00m/.git-completion.bash: No such file or directory
>>> HOME= /home/xx00mkf
>>> ~= /home/xx00mkf
>>> ~/.git-completion.bash= /home/xx00mkf/.git-completion.bash
>>
>> HOME dir depends on entries in:
>>
>>         /etc/nsswitch.conf
>>
>> whether you have /etc/passwd and/or /etc/group files and their entries;
>>
>> your SAM and/or AD entry contents including e.g.
>>
>>         $ net user $USER | grep '^Comment'
>>         Comment         <cygwin home="/home/..." group="Users"...>
>>
>> You can check if any of these are in effect by running:
>>
>>         $ getent passwd $USER
>>
>> If you think they are relevant, you might also want to try to trace and debug
>> your bash-completion setup scripts:
>>
>>         $ set -vx
>>         $ . /etc/profile.d/bash_completion.sh |& tee /tmp/completion.log | less
>>
>> to see what they are doing that might affect other settings.
> 
> Thanks, but ~ changes from xx01m to xx01mkf (which is correct) between
> a few commands in .bashrc:
> 
> If I add:
> 
> . ~/.git-completion.bash
> if [ ! $? = 0 ] ; then
>   echo "HOME=" $HOME
>   echo "~=" ~
>   echo "~/.git-completion.bash=" ~/.git-completion.bash
> fi
> 
> I see (*sometimes*):
> 
> -bash: /home/xx00m/.git-completion.bash: No such file or directory <<<wrong
> HOME= /home/xx00mkf
> ~= /home/xx00mkf <<<correct
> ~/.git-completion.bash= /home/xx00mkf/.git-completion.bash <<<correct

Well then you have to trace and debug those commands run from your .bashrc where
~ changes, perhaps using bashdb?

-- 
Take care. Thanks, Brian Inglis, Calgary, Alberta, Canada

This email may be disturbing to some readers as it contains
too much technical detail. Reader discretion is advised.
[Data in IEC units and prefixes, physical quantities in SI.]


More information about the Cygwin mailing list