使用 PowerShell6.x 或更高版本中的 PowerShell 脚本,在未知的 Linux 发行版上运行,如何以编程方式可靠地确定操作系统的发行版和版本号?
编辑: 也许像这样的答案,加上一些字符串解析? https://unix.stackexchange.com/a/6348
我也需要在powershell脚本中执行此操作。我使用以下解决方案:
$distribution = Invoke-Expression "lsb_release -cs"
例如,这使得$distribution
包含以下值:
bionic
您可以对版本执行相同的操作:
$version = Invoke-Expression "lsb_release -rs"
例如,这使得$version
包含以下值:
18.04
这应该会得到发行版和版本号。
$release = Invoke-Expression "(lsb_release -ds || cat /etc/*release || uname -om) 2>/dev/null | head -n1"
$release
将包含类似Ubuntu 18.04.5 LTS
或CentOS Linux release 7.9.2009 (Core)
.
如果你像我一样,只需要发行版,那么你可以使用正则表达式来捕获。
$release | grep -Po '^[^s]+'
$release
将包含类似Ubuntu
或CentOS
.