如何使用 PowerShell 6.x 或更高版本确定 Linux 的分发和版本?



使用 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 LTSCentOS Linux release 7.9.2009 (Core).

如果你像我一样,只需要发行版,那么你可以使用正则表达式来捕获。

$release | grep -Po '^[^s]+'

$release将包含类似UbuntuCentOS.

最新更新