我想确定一些正在执行的脚本是否正在运行特定版本的Mac OSX。我意识到我可以执行/生成命令:
sw_vers -productVersion
有没有办法在没有node-exec-sync的情况下同步执行此操作(类似于process.arch)?我意识到它是同步生成/执行的一种公认的坏习惯,但我没有看到另一种方式。
答案 0 :(得分:27)
您可以像这样使用the OS module:
var os = require('os');
os.platform(); // 'darwin'
os.release(); //'10.8.0'
然后将发布版本映射到特定版本的Mac OS X.
可以找到Darwin到Mac OS X映射here
答案 1 :(得分:2)
如上所述,在AndyD的回答中,os.release()
返回内核版本。如果您想获得用户在"关于此Mac"中看到的相同版本号。用户界面,您可以阅读并解析/System/Library/CoreServices/SystemVersion.plist
,如下所示:
const plist = require('plist');
let versionInfo = plist.parseFileSync('/System/Library/CoreServices/SystemVersion.plist');
console.log(JSON.stringify(versionInfo));