0

您如何区分 MSYS 和 MSYS2 以及 CYGWIN,例如通过命令或预定义的环境变量?

像 Scons 这样的工具需要这种区别来适应生成的命令行,例如通过发出双反斜杠c:\\path\\to\\file或反引号`cygpath -w /c/path/to/file`

背景:我想使用 MSYS2,因为它具有出色的包管理功能。Scons 在 MSYS2 上生成/c/path/to/file,但csc(Microsoft 的 C# 编译器)只允许 Windows 样式路径。

4

2 回答 2

0

我不知道任何可以可靠地传达此信息的环境变量,但输出uname -s应该会告诉您。

于 2015-09-08T19:14:56.067 回答
0

检查系统名称和版本:

case "$(uname -or)" in
    1.*Msys)  system='msys'   ;;
    2.*Msys)  system='msys2'  ;;
    .*Cygwin) system='cygwin' ;;
esac
于 2016-06-21T07:04:56.133 回答