Difference when running 'Cygwin.bat' and if just running 'bash' (.bash_profile vs. .bashrc)

前端 未结 1 571
萌比男神i
萌比男神i 2021-01-22 10:16

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

1条回答
  •  孤街浪徒
    2021-01-22 10:24

    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.

    0 讨论(0)
提交回复
热议问题