windows - 使用 git bash 的自定义控制台

标签 windows shell console sh git-bash

我知道控制台应用程序使用 git bash 调用 sh.exe 但我想知道他们如何继续使用 sh

我经常在控制台应用程序上看到您执行 sh.exe --login。我猜想这会在某处创建一个 session ,并且我会假设控制台应用程序会以某种方式针对它执行命令?

基本上我从 UNIX 切换到了 Windows。我尝试了很多控制台应用程序(最好是 console2git-bash),但它们仍然不适合我。

我非常恼火,以至于我想尝试用 Java 编写一个简单的 shell。 (我是一名 Java 开发人员。)

任何帮助都会非常感谢理解这一点,但在谷歌中使用 consolegit-bash 进行搜索会产生如此多的随机噪音。

最佳答案

如果您使用的是移植到 Windows 的各种 Unix shell 之一,您应该知道这些 shell 中的大多数都使用一些试探法使 Windows 看起来像 Unix,以构建兼容性布局或为了用户方便。

例如,git 命令可能存储在 git.exe 文件中,但是从 Unix 工作站导入的 shell 脚本都说 git 所以如果 shell 没有找到 git,它会查找 git.exe

这些启发式算法都无法完美运行,因此您必须预料到经常会出现不一致和分歧,尤其是当您将多个 Unix 端口混合在一起时。

至于--login的含义,与-l同义,主要作用是决定bash<读取哪些初始化文件 启动时`

   -l        Make bash act as if it had been invoked as a login shell (see
             INVOCATION below).

关于windows - 使用 git bash 的自定义控制台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22176592/

相关文章:

c++ - 如何在 Windows 上静态构建和包含 wolfssl?

windows - *.bat 和 *.cmd 文件有什么区别?

linux - 如何在没有sudo的情况下在shell脚本中运行特定命令?

javascript - 了解 querySelector 和 querySelectorAll 控制台输出

java - H2 数据库未通过命令行启动

Windows和重命名文件夹, 'con'问题

.net - 防止多次登录同一台计算机的技术

windows - 为什么默认情况下允许 "local launch"用于进程外服务器,但 "local activation"不允许?

linux - 如何用 Shell 脚本替换 .txt 文件中未确定位置的字符串?

php - 从另一个运行控制台命令