将命令输出分配给与原始输出不同的环境变量(bash)

时间:2017-03-22 11:41:51

标签: linux bash process environment-variables lines

我遇到了我最初设计的脚本的问题。

我正在尝试获取命令显示的行数,如果数字大于某个值,则应该发生一些事情。

我的问题是,最初这种方法很好,现在却没有。

在我的脚本中,我使用以下命令

NO_LINES=$(ps -ef | grep "sh monitor.sh" | wc -l)
echo $NO_LINES

echo $NO_LINES打印0,即使它应该打印1,这是grep命令的行。

如果我单独执行命令(不将结果分配给环境变量),就像这样

ps -ef | grep "sh monitor.sh" | wc -l

这将打印出1,这是正确的结果。

为什么通过将结果赋给变量,该值比原始结果低1?

该机器的bash版本是4.3.46(1)-release。

由于

0 个答案:

没有答案