在bash脚本中获取正确的进程数



我想检查当前正在运行的进程的数量。进程名称为sol3-script-ui

如果我直接从命令行运行ps aux | grep "sol3-script-ui" | grep -v grep | awk '{print $2}' | wc -l,那么我得到8,这是正确的(当我从命令行键入"top"时,也与数字匹配(。

然而,我想在bash脚本中获得这个数字,这个数字将用作其他一些操作的输入。为了简化,我创建了一个bash脚本文件get-sol3-script-ui-nr.sh,当我运行这个bash文件时,它会在屏幕上回显10。

在命令行中运行和在bash脚本中运行时,进程编号不同的原因是什么?

我怎么能得到这个";8〃;bash脚本中?

root@aldo:/home/sol3/script# ps aux | grep "sol3-script-ui" | grep -v grep | awk '{print $2}' | wc -l
8
root@aldo:/home/sol3/script# ./get-sol3-script-ui-nr.sh 
10
root@aldo:/home/sol3/script# cat get-sol3-script-ui-nr.sh 
#!/bin/bash
sol3Nr=$(ps aux | grep "sol3-script-ui" | grep -v grep | awk '{print $2}' | wc -l)
echo $sol3Nr

也许这个问题在其他帖子中以某种方式重复了一遍。但有人能向我解释原因和解决方案是件好事。我想让sol3Nr等于8,这将用于其他操作。

我建议:

sol3Nr=$(pgrep sol3-script-ui | wc -l)

相关内容

  • 没有找到相关文章

最新更新