Недопустимый символ и ошибка разбора
top -n 2 -d 5 | grep процессор | awk 'NR == 2' | sed -e "s / \% // g" | sed -e "s / \ us, // g"> temp
cpu_value =awk '{print $2}' temp
cpu_calc =echo "scale=4; 100 - $cpu_value" | bc
Я получаю следующую ошибку:
(standard_in) 1: недопустимый символ: ^[ (standard_in) 1: ошибка разбора
1 ответ
Просто добавьте tr, чтобы заменить ,
с .
cpu_calc=`echo "scale=4; 100 - $cpu_value" | tr , . | bc`
Кажется, работает на моем ноутбуке.
Изменить: Как вы должны знать, десятичный разделитель и разделитель тысяч различаются в разных странах, и, следовательно, могут также отличаться, если некоторые команды имеют форматирование чисел, специфичное для страны / языка. В Испании мы пишем 42.571,93
в других странах вы можете увидеть 42,571.93
для компьютеров, однако правильная форма 42571.93
(этот номер только пример).