4

当我执行一个 shell 脚本——任何目录中的任何 shell 脚本——我会收到一个“欢迎使用 git”的问候语。它似乎没有做任何事情(脚本按预期运行),但很奇怪,我想了解它的来源。

例如,这里我有一个回显短字符串的 shell 脚本,这就是我所看到的: 截屏

这是 vanilla cmd.exe(在安装了 UnixUtils 的系统上)。我确实在其他目录中使用了 git,但不是在这里。会发生什么?

4

2 回答 2

4

好吧,就像 Windows 上的任何其他文件一样,当您尝试执行它时,Windows 将尝试调用其标准文件处理程序。如果 msysgit 附带的 bash 是为.sh文件设置的(默认情况下不是这样),那么输出将与您显示的完全相同。

正在显示的输出存储在<msysgit-folder>\etc\motd其中,由位于 的 shell 配置文件加载<msysgit-folder>\etc\profile

您还可以通过将 Bash 更改为没有参数的启动来摆脱所有 Git 特定的东西--login(默认情况下在 Git Bash 快捷方式中提供)。您可能需要调整注册表以在.sh文件处理程序中更改它。

于 2013-03-01T22:37:18.630 回答
0

您直接调用 Bash 脚本的事实,即

foo.sh

而不是

bash foo.sh

让我相信你实际上是在运行 Bash 而不是cmd.exe. 话虽如此,您可以像这样检查启动文件

grep 'Welcome to Git' /etc/profile ~/.bash_profile ~/.profile ~/.bashrc
于 2013-03-01T22:24:07.177 回答