如何在 PowerShell 6.x 或更新的版本中使用 PowerShell 脚本,在未知的 Linux 发行版上,以编程方式可靠地确定操作系统的发行版和版本号?
编辑: 也许可以像这个答案一样,再加上一些字符串解析?
如何在 PowerShell 6.x 或更新的版本中使用 PowerShell 脚本,在未知的 Linux 发行版上,以编程方式可靠地确定操作系统的发行版和版本号?
编辑: 也许可以像这个答案一样,再加上一些字符串解析?
这将获取操作系统的发行版和版本号。
$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
的内容。
我也需要在powershell脚本中执行此操作。我使用以下解决方案:
$distribution = Invoke-Expression "lsb_release -cs"
$distribution
包含以下值,例如:bionic
你可以对版本执行相同的操作:
$version = Invoke-Expression "lsb_release -rs"
$version
包含以下值,例如:18.04
lsb_release
程序,否则使用/etc/os-release
的内容。如何在PowerShell中执行此操作超出了我的能力范围。请注意,版本号不一定是数字,例如Debian测试版和不稳定版。 - bk2204