以下代码的目标是验证可用内存是否小于总内存的<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"}'
答案 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"}'