У меня простой вопрос:
Я пишу программу на C со следующей структурой:
int qty_used;
qty_used = system("df -h | grep 'sda1' | awk 'BEGIN{print "Use%"} {percent+=$5;} END{print percent}'");
if (qty_used<fixed_limit)
/* action 1 */
else
/* action 2*/;
так что если это ситуация:
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 2.0T 30G 1.8T 2% /
Я хочу, чтобы qty_used загружался с целочисленным значением 2. Я никогда раньше не использовал awk и начал с этого многообещающего ответа: https://unix.stackexchange.com/questions/64815/how-to-print-процентиспользованиядискаиз-df-hl. Результат:
df -h | grep 'sda1' | awk 'BEGIN{print "Use%"} {percent+=$5;} END{print percent}'
звучало хорошо. Но если я попрошу [мне нужно было только целое число]:
df -h | grep 'sda1' | awk 'BEGIN{percent+=$5;} END{print percent}'
тогда выход равен нулю, а не 2 больше
Более того, я знаю, что система не вернет процент, который я ищу, а вернет статус команды, который бесполезен для моих нужд.
Итак, вопрос: есть ли быстрый способ решить эту проблему, начиная с этих строк?
Спасибо тем, кто попытается помочь