区分MSYS和MSYS2和CYGWIN
distinguish between MSYS and MSYS2 and CYGWIN
如何区分 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 样式路径。
我不知道有任何环境变量可以可靠地传达此信息,但 uname -s
的输出应该告诉您。
检查系统名称和版本:
case "$(uname -or)" in
1.*Msys) system='msys' ;;
2.*Msys) system='msys2' ;;
.*Cygwin) system='cygwin' ;;
esac
如何区分 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 样式路径。
我不知道有任何环境变量可以可靠地传达此信息,但 uname -s
的输出应该告诉您。
检查系统名称和版本:
case "$(uname -or)" in
1.*Msys) system='msys' ;;
2.*Msys) system='msys2' ;;
.*Cygwin) system='cygwin' ;;
esac