问题描述
正如问题所说,我想知道如何从 proc 文件中获取 linux 和 gcc 版本。我知道我必须使用 cat /proc/version
但结果是(对我来说)不必要的信息太多。如果我运行命令,我会得到这个:MINGW64_NT-10.0-19042 version 3.1.6-340.x86_64 (@fv-az314) (gcc version 9.3.0 (GCC) ) 2020-07-09 14:33 UTC
(命令在 cmder bash.exe 中运行)。我想要的只是获得 3.1.6-340.x86_64
(linux 版本)和 9.3.0
(gcc 版本)。我知道有某些命令允许这种信息提取,但由于我是 bash 脚本的新手,我不知道如何去做。我想要的输出是:Linux: <linux version> \n gcc: <gcc version>
(其中 \n 是换行符)。
感谢所有帮助。
解决方法
我保留了您的“格式”,但我不确定这是否是您真正想要的。
awk '{printf "Linux: %s \n gcc: %s",$3,gensub(/^.*gcc version ([^ ]+).*$/,"\\1","1",$0)}' /proc/version
Linux: 5.4.0-72-generic
gcc: 9.3.0tink@linux:~
,
代码是:
var1=$(uname -r)
var2=$(gcc -dumpversion)
echo -e "Linux version is $var1 \n gcc version is $var2"
这应该为您提供所需的输出