当我执行一个 shell 脚本——任何目录中的任何 shell 脚本——我会收到一个“欢迎使用 git”的问候语。它似乎没有做任何事情(脚本按预期运行),但很奇怪,我想了解它的来源。
例如,这里我有一个回显短字符串的 shell 脚本,这就是我所看到的:
这是 vanilla cmd.exe(在安装了 UnixUtils 的系统上)。我确实在其他目录中使用了 git,但不是在这里。会发生什么?
好吧,就像 Windows 上的任何其他文件一样,当您尝试执行它时,Windows 将尝试调用其标准文件处理程序。如果 msysgit 附带的 bash 是为.sh
文件设置的(默认情况下不是这样),那么输出将与您显示的完全相同。
正在显示的输出存储在<msysgit-folder>\etc\motd
其中,由位于 的 shell 配置文件加载<msysgit-folder>\etc\profile
。
您还可以通过将 Bash 更改为没有参数的启动来摆脱所有 Git 特定的东西--login
(默认情况下在 Git Bash 快捷方式中提供)。您可能需要调整注册表以在.sh
文件处理程序中更改它。
您直接调用 Bash 脚本的事实,即
foo.sh
而不是
bash foo.sh
让我相信你实际上是在运行 Bash 而不是cmd.exe
. 话虽如此,您可以像这样检查启动文件
grep 'Welcome to Git' /etc/profile ~/.bash_profile ~/.profile ~/.bashrc