我刚刚遇到直接调用或用反引号括起来时 wc -l 的输出不同。例如:
pgrep bash | wc -l
将输出 1,因为有一个 bash 进程正在运行。但是将此命令括在反引号中
echo `pgrep bash | wc -l`
会输出 2。我首先想到的是,反引号会打开一个新的 bash 进程,但是
echo `pgrep bash`
只找到与上述相同的一个过程。将命令包含在 $() 中时也是如此:
echo $(pgrep bash | wc -l)
这也将输出 2。有人知道为什么会这样吗?