我想检查当前正在运行的进程数。进程名称是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脚本中运行时进程号不同的原因是什么?
我怎么能在 bash 脚本中得到这个“8”?
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,这将用于其他操作。