【问题标题】:system command of awkawk的系统命令
【发布时间】:2018-11-08 22:20:11
【问题描述】:

在以下脚本中,无法确定在 system() 中将“for awk”放置在何处,将“放在末尾会产生语法错误。

free -m | awk 'NR==2{
if (($3*100/$2)>=10.00){

    printf system("ps aux --sort=-%mem | awk 'NR==2{print $2}'");

    }
    else
    {
    printf "Memory Usage: %s/%sMB (%.2f%%)\n", $3,$2,$3*100/$2 ; 
    }
    }'

【问题讨论】:

    标签: linux shell awk


    【解决方案1】:

    你想在这里转义单引号:

    printf system("ps aux --sort=-%mem | awk \'NR==2{print $2}\'");
    

    否则它会关闭外部 awk 命令的单引号。

    【讨论】:

    • 在 {print $2} 之后使用转义字符 \ 将 " 视为 awk 的结尾并引发不同的语法错误。
    • 语法错误:"(" 意外还编辑了上面的问题,甚至包括了 else 部分。
    猜你喜欢
    • 1970-01-01
    • 2022-08-22
    • 2015-08-31
    • 2018-10-11
    • 1970-01-01
    • 2014-12-26
    • 1970-01-01
    • 1970-01-01
    • 2018-06-22
    相关资源
    最近更新 更多