首页 > 解决方案 > 在一次执行运行中从命令输出中获取两个变量

问题描述

我在 bash 中构建一个脚本以在 Linux 上使用,我使用可执行文件的输出来填充参数:

version=$("${path_exec}" -version | awk '{if($1=="kernel" && $2=="release") print $3}')
patch=$("${path_exec}" -version | awk '{if($1=="patch" && $2=="number") print $3}')

这将运行“path_exec”中定义的可执行文件两次,这很耗时。有没有办法只使用“path_exec”的一次执行来为版本和路径变量分配一个值?

我试图解决这个问题的一个例子如下所示,但我认为这不会做我想要的:

${path_hostexec} -version | awk '{if($1=="kernel" && $2=="release") {version_agent = $3;} else if($1=="patch" && $2=="number") {patch_agent = $3;}}'

标签: linuxbash

解决方案


谢谢大家,感谢您的输入,我已经设法让它工作:

version_patch_agent=$("${path_hostexec}" -version | awk '/kernel release/ {v=$3} /patch number/ {p=$3} END {print v" patch "p}')

这会将版本和补丁号放入一个变量中,我可以通过回显来获取屏幕上的信息。再次感谢大家!!


推荐阅读