如何在不同版本的Linux中从命令结果中提取字段?

我试图使用以下命令提取进程大小:

size=`ps -eo vsz,pid | grep $pid | cut -'d' -f1`

但是,这似乎只能在某些计算机上使用,而不能在所有计算机上使用。因此,在那些无法正常工作的地方,我尝试了:

size=`ps -eo vsz,pid | grep $pid | awk '{print $1}'`

但是,现在这在第一个命令起作用的计算机上不起作用。

“工作”和“不工作”的意思是有时:

echo "|$size|"

将返回类似:

|8762348

9835|

因此,以下内容将返回算术错误:

(( $size > $threshold ))

因为换行符或回车符存储在$ size中。有没有一种方法可以可靠地提取不同版本的linux中的第一个字段?

you6251545 回答:如何在不同版本的Linux中从命令结果中提取字段?

首先,您要求ps为所有进程显示信息,然后尝试选择其中一个。

您的命令在some computers上有问题,并且您在问题上同时标记了kshlinux,所以我不确定哪种命令最适合您的情况:>

size=$(ps -q ${pid} -o vsz --no-headers)
# or
size=$(ps -p ${pid} -o vsz | grep -v "VSZ")
本文链接:https://www.f2er.com/2730185.html

大家都在问