[英]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
上有问题,并且您用ksh
和linux
标记了问题,所以我不确定在您的情况下可以最好地使用什么命令:
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.