当我正在运行Cygwin.bat
时,我的所有自定义内容都来自.bash_profile
,但是当我刚刚运行bash
时,我.bash_profile
的任何内容都没有工作,我只是有root@comp:/mnt/c/cygwin64#
的有线前缀(作为我当前的目录)
运行bash
时是否有任何方法可以获得相同的结果{}运行Cygwin.bat
Cygwin.bat
的内容是:
@echo off
C:
chdir C:\Tools\cygwin64\bin
bash --login -i
答案 0 :(得分:2)
正如@matzeri在评论中指出的那样,cygwin.bat
使用bash
选项调用--login
,该选项会创建交互式登录shell 。没有bash
选项的--login
会创建一个交互式shell ,它不是登录shell 。
根据bash man page:
当bash作为交互式登录shell 或作为非交互式调用时 shell 使用
--login
选项,它首先从中读取并执行命令 文件/etc/profile
,如果该文件存在。阅读该文件后,它 按顺序查找~/.bash_profile
,~/.bash_login
和~/.profile
,以及 读取并执行存在且可读的第一个的命令。 启动shell以禁止此操作时,可以使用--noprofile
选项 行为。当启动非登录shell 的交互式shell 时,bash读取 如果该文件存在,则从
~/.bashrc
执行命令。这可能是 使用--norc
选项禁止。--rcfile
文件选项将强制执行 bash从文件而不是~/.bashrc
读取和执行命令。
我的~/.bash_profile
只有一行:
source ~/.bashrc
我将所有内容放在~/.bashrc
。