运行时程序包可以返回操作系统。这很棒,因为有人可以致电runtime.GOOS
,该电话将返回:
const GOOS = `windows`
const GoosAix = 0
const GoosAndroid = 0
const GoosDarwin = 0
const GoosDragonfly = 0
const GoosFreebsd = 0
const GoosHurd = 0
const GoosJs = 0
const GoosLinux = 0
const GoosNacl = 0
const GoosNetbsd = 0
const GoosOpenbsd = 0
const GoosPlan9 = 0
const GoosSolaris = 0
const GoosWindows = 1
const GoosZos = 0
在某些用例中,这还不够,用户只希望检测特定版本,而仅检测OS系列。如何检测操作系统的版本?
在命令行中,有人可以键入:
sw_vers
在macOS上
产品名称:Mac OS X
ProductVersion:10.14.5
BuildVersion:18F132
lsb_release -a
在Ubuntu上
分发者ID:Ubuntu
说明:Ubuntu 14.04.5 LTS
发布:14.04
代号:trusty
ver
在Windows上
Microsoft Windows [版本10.0.17134.829]
我猜这可以通过使用os/exec
并解析上面命令的输出来完成,但是还有更好的方法吗?