我的问题很简单:
我正在用 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-the-percentage-of -disk-use-from-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
此外,我知道系统不会返回我正在搜索的百分比,而是返回对我的需求无用的命令状态
所以问题是:有没有从这些方面开始解决这个问题的快速方法?
感谢那些愿意提供帮助的人