我想检查当前正在运行的进程的数量。进程名称为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)