管道回声和猫不起作用
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}"
我正在编写为服务器安装固件的脚本。
已将终端中 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}"