为什么wc
在使用直接命令输出时以及何时将输出存储在变量中时报告不同的行数?
$ virsh list --all | grep -P -- '(-|(\d+))\s+\S+\s+\S+'
$ var=$(virsh list --all | grep -P -- '(-|(\d+))\s+\S+\s+\S+')
$ wc -l <<< "${var}"
1
$ virsh list --all | grep -P -- '(-|(\d+))\s+\S+\s+\S+' | wc -l
0
$ echo "x${var}x"
xx
$ cat <<< ${var}
$
1.,4。调用表明命令(virsh | grep
)不输出任何内容。 5.调用表明该变量包含空字符串。但是出于某种原因,wc在invoaction 3中报告了一行。