Век живи, век учись[, дураком помрёшь].
Взгляните на вывод команды df:
$ df /
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/vg_kirpad-lv_root 52765228 40972332 9105920 82% /
Казалось бы, чтобы отсюда узнать, сколько всего на файловой системе блоков, нужно взять второе поле из последней строки, например, вот так:
$ df / | awk 'END {print $2}'
52765228
Всё работает. Ан нет. В природе, оказываются, существуют хосты, которые печатают вот так:
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/volume3_part5
162693204 230624 148202134 2% /
И с использованием вышеприведённой конструкции мы получаем 230624 вместо 162693204.
Правильное решение -- вероятно, использовать
stat -f /
, надеясь, что он не оборудован такими выкрутасами, как df.
Костыль -- считать поля с конца, а не с начала, то есть
awk 'END {print $(NF-4)}'
.