如何区分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样式路径。
答案 0 :(得分:0)
检查系统名称和版本:
case "$(uname -or)" in
1.*Msys) system='msys' ;;
2.*Msys) system='msys2' ;;
.*Cygwin) system='cygwin' ;;
esac