我正在编写一个小脚本来映射服务器中运行的服务所使用的所有当前内存。然而,我面临着这样做的问题。我的剧本很简单。我正在使用pmap查找正在使用的内存,并尝试将运行的服务的所有pid相加。
#!/bin/bash
result=`$pgrep java`
wc=`$pmap -x $result | wc -l`
gawk=`$pmap -x $result | gawk 'NR==$wc{print $3}'`
echo "$gawk"
现在,我的问题是gawk在搜索特定模式(gawk'NR==$wc{print$3})时使用单引号,但是shell脚本给了我错误,因为在shell中单引号的含义与gawk不同。
最佳答案
根据你的评论,你似乎在尝试这样做:
pmap -x "$(pgrep java)" | awk '{s=$3}END{print s}'
这将打印
pmap -x
输出的最后一行的第三列,并带有正在运行的java进程的PID。在awk的某些版本中,您可以简单地执行'END{print $3}'
操作,但这并不能保证有效。关于linux - gawk和Shell脚本的单引号问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29631575/