awk +运行awk命令没有管道输出

时间:2014-10-02 06:00:46

标签: linux bash awk

以下代码的目标是验证可用内存是否小于总内存的<20%

如果fr ee内存少,那么awk应该打印失败,否则awk会打印好

TOTALM=120000K
FREEM=89111K

请在此语法中提出错误建议? ,为什么我不能像这里显示的那样运行awk?

awk -v FREEM=$FREE_MEMORY -v TOTALM=$TOTAL_MEMORY '{per=int(FREEM)/int(TOTALM)*100; if(per<=20) print "FAIL" ; else print "OK"}'  

1 个答案:

答案 0 :(得分:2)

您的代码中存在一些问题:

首先,在将两个变量传递给awk时,您已更改了这两个变量的名称。

其次,awk需要在脚本之后输入一个文件,但是您可以通过将代码放在BEGIN块中来解决该问题。

#!/bin/bash
TOTALM=120000K
FREEM=89111K
awk -v FREEM=$FREEM -v TOTALM=$TOTALM '
           BEGIN {per=int(FREEM)/int(TOTALM)*100
                  if(per<20) print "FAIL"
                  else print "OK"}'