在我的Fedora机器上,我有时需要找出内核名称的某些组件。
VERSION=3.18.9-200.fc21
VERSION_ARCH=3.18.9-200.fc21.x86_64
SHORT_VERSION=3.18
DIST_VERSION=fc21
EXTRAVERSION = -200.fc21.x86_64我知道-a/-r/-m,但这些并不能提供我所需要的所有组件。
当然,我可以直接拆解uname -r。
KERNEL_VERSION_ARCH=$(uname -r)
KERNEL_VERSION=$(uname -r | cut -d '.' -f 1-4)
KERNEL_SHORT_VERSION=$(uname -r | cut -d '.' -f 1-2)
KERNEL_DIST_VERSION=$(uname -r | cut -d '.' -f 4)
EXTRAVERSION="-$(uname -r | cut -d '-' -f 2)"但对我来说,这似乎很麻烦,也不安全。
问题:是否有一种优雅的方法(即更好的可读性和发行性)来获取我需要的所有内核版本/名称组件?
最好是s.th。喜欢
kernel-ver -f "%M.%m.%p-%e.%a"
3.19.4-200.fc21.x86_64
kernel-ver -f "%M.%m"
3.19
kernel-ver -f "%d"
fc21发布于 2015-05-06 08:19:28
当然,uname -r部分需要一些sed/awk/grep魔术。但你还可以尝试其他一些选择:
cat /etc/os-releasecat /etc/lsb-releasecat /etc/fedora-releaselsb_release -a也值得一试。cat /proc/version,但它的输出与uname -a几乎相同在文件/etc/*-release中,格式已经是VARIABLE=value,所以您可以直接访问该文件,然后访问变量:
$ source /etc/os-release
$ echo $ID
fedora总之,应该在将上述思想结合在一起的每个系统上运行一个命令:
cat /etc/*_ver* /etc/*-rel* 2>/dev/nullhttps://stackoverflow.com/questions/30070770
复制相似问题