管道回声和猫不起作用

piping echo and cat not works

我正在编写为服务器安装固件的脚本。
已将终端中 XML 文件的输出版本卡在 args 中。

echo "BROADCOM NIC Version : " | cat firmware-nic-broadcom-*/CP*.xml | grep "<Version>" | uniq | sed 's/[^0-9,.]//g'

我要输出“BROADCOM NIC 版本:20.19.31”
但它只显示“20.19.31”

如何解决这个问题?

这是一种简单的方法:

echo -n "BROADCOM NIC Version : " ; cat firmware-nic-broadcom-*/CP*.xml | grep "<Version>" | uniq | sed 's/[^0-9,.]//g'
     ^^ Add                       ^ Change

-n 标志表示没有换行的回显,将 | 更改为 ; 意味着它总是直接输出而不是在管道中丢失。

您可以先声明VERSION变量。

VERSION=$(cat firmware-nic-broadcom-*/CP*.xml | grep "<Version>" | uniq | sed 's/[^0-9,.]//g')
echo "BROADCOM NIC Version : ${VERSION}"