When I am running Cygwin.bat
I've got my all my custom stuff working from .bash_profile
but when I am just running bash
none of my stuff from .bash_profile
is working and I am just got wired prefix like root@comp:/mnt/c/cygwin64#
(as my current dir)
Is there any way to achieve the same result when running bash
as I got when running Cygwin.bat
the content of Cygwin.bat
is:
@echo off
C:
chdir C:\Tools\cygwin64\bin
bash --login -i
As pointed out by @matzeri in the comment, cygwin.bat
invokes bash
with the --login
option which creates an interactive login shell. And bash
without the --login
option creates an interactive shell which is not a login shell.
According to bash man page:
When bash is invoked as an interactive login shell, or as a non-interactive
shell with the --login
option, it first reads and executes commands from
the file /etc/profile
, if that file exists. After reading that file, it
looks for ~/.bash_profile
, ~/.bash_login
, and ~/.profile
, in that order, and
reads and executes commands from the first one that exists and is readable.
The --noprofile
option may be used when the shell is started to inhibit this
behavior.
When an interactive shell that is not a login shell is started, bash reads
and executes commands from ~/.bashrc
, if that file exists. This may be
inhibited by using the --norc
option. The --rcfile
file option will force
bash to read and execute commands from file instead of ~/.bashrc
.
My ~/.bash_profile
has only one line:
source ~/.bashrc
and I put all conf in ~/.bashrc
.