![是否有一个环境变量可以提供 ubuntu 版本和内核版本?](https://linux22.com/image/876864/%E6%98%AF%E5%90%A6%E6%9C%89%E4%B8%80%E4%B8%AA%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E5%8F%AF%E4%BB%A5%E6%8F%90%E4%BE%9B%20ubuntu%20%E7%89%88%E6%9C%AC%E5%92%8C%E5%86%85%E6%A0%B8%E7%89%88%E6%9C%AC%EF%BC%9F.png)
是否存在一个环境变量可以提供 ubuntu 的版本,另一个环境变量可以提供内核的版本?
我猜答案是否定的,因为printenv | grep 14.04
什么都没有提供,但我想我还是会问,因为这可以省去我通过在脚本中运行额外命令来声明它的时间。
答案1
不可以。您必须分别使用lsb_release
和uname
命令来获取 Ubuntu 和内核的版本。
$ lsb_release -sr
14.04
$ lsb_release -sc
trusty
$ uname -r
3.13.0-65-generic
或者,您可以解析某些文件,但除非您有充分的理由这样做,否则最好使用这些命令。
答案2
我喜欢所提供的所有答案,因为它们都证实了我的怀疑,但我认为执行以下操作对于我所寻找的内容会更好:
ubuntu中有一个文件:/etc/lsb-release
我现在通过查看其中的脚本才发现这/etc/update-motd.d
一点/etc/update-motd.d/00-header
此文件虽然不可执行,但包含具有 ubuntu 版本信息的变量,这些变量在通过执行以下操作传递 motd 消息时运行:
[ -r /etc/lsb-release ] && . /etc/lsb-release
基本上,正如我理解的那样,如果这个文件存在并且可以读取,那么就用 bash 运行它。
因此,至少在 Ubuntu 环境中,如果我将该行包含在我的脚本中,或者仅包含该行,. /etc/lsb-release
它将为我提供我需要的所有变量,而无需诉诸任何命令。