我想检查一下当前正在运行的进程数。进程名为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,它将用于其他操作。
发布于 2021-06-29 23:31:29
我建议:
sol3Nr=$(pgrep sol3-script-ui | wc -l)https://stackoverflow.com/questions/68181690
复制相似问题