繁体   English   中英

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

[英]How to extract field from command result in different versions of 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 中的第一个字段?

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

您的命令在some computers上有问题,并且您用kshlinux标记了问题,所以我不确定在您的情况下可以最好地使用什么命令:

size=$(ps -q ${pid} -o vsz --no-headers)
# or
size=$(ps -p ${pid} -o vsz | grep -v "VSZ")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM