Поставьте следующие операторы перед вашим if
оператором:
echo "[$MEMORY_USAGE1]"
echo "[$LEN]"
echo "[$CNPROC]"
echo "[$CTotal]"
и посмотри, что получится. Эта ошибка почти всегда неизменно вызывается, как это ни удивительно :-), передачей нечисловых данных в expr
, а операторы echo
должны точно сказать, в чем проблема.
Например:
pax> expr 1 + x
expr: non-numeric argument
Исходя из вашего комментария, ваш вывод:
[ NPROC USERNAME SWAP RSS MEMORY TIME CPU
Total: 143 processes, 2449 lwps, load averages: 1.76, 2.56, 2.94
NPROC USERNAME SWAP RSS MEMORY TIME CPU
Total: 148 processes, 2443 lwps, load averages: 1.82, 2.57, 2.95]
[ 4]
[ 2]
[ 2]
возможно, что пробелы, предшествующие вашим числовым значениям, вызывают ваши проблемы. Попробуйте заменить все ваши вхождения:
|wc -l
с:
|wc -l|sed 's/ //g'
чтобы избавиться от пробелов в выводе wc
.