Как и комментарий tripleee, я полагаю, что мы могли бы использовать другой механизм (может быть в оболочке для вычислений), а затем могли бы написать что-то, вызывая awk
внутри awk
, это не так круто, если честно. Не могли бы вы попробовать следующий раз.
free -m | awk -v s1="'" 'NR==2{
if (($3*100/$2)>=10.00){
printf system("ps aux --sort=-%mem | awk " s1 "NR==2{print $2}" s1 );
}
else
{
printf("Memory Usage: %s/%sMB %.2f%%\n", $3,$2,$3*100/$2)
}
}'
РЕДАКТИРОВАТЬ: В случае, если вы не хотите использовать переменную для хранения '
, тогда используйте его восьмеричное представление следующим образом.
free -m | awk 'NR==2{
if (($3*100/$2)>=10.00){
printf system("ps aux --sort=-%mem | awk \047 NR==2{print $2} \047" );
}
else
{
printf("Memory Usage: %s/%sMB %.2f%%\n", $3,$2,$3*100/$2)
}
}'