Я пытаюсь настроить небольшой 3-битный счетчик процессора на моей малине Pi2, и после того, как я узнал, что обычная Shell не любит плавать, я наткнулся на «BC»Использование BC в оболочке If-statement выводит целочисленное выражение, ожидаемое
После нескольких часов работы я получил мой сценарий для работы, но использование процессора бросить высоким, поскольку консоль всегда пишет «целое выражение ожидается»
Я действительно не знаю, как это исправить, или почему эту ошибку даже сохраняется, сценарий отлично работает, но он забивает мои CPU Cycles ...
Можете ли вы посмотреть мой сценарий и, может быть, объяснить мне, почему это это ошибка?
while :
do
sleep 0.5
var=$(egrep -o '([0-9]{1})\.[0-9]{2}' /proc/loadavg | head -1)
c005=0.05
c10=1.0
c05=0.5
c006=0.06
if [ "$(echo "if (${var} < ${c005}) 1" | bc)" -eq 1 ] ; then
gpio write 0 0
gpio write 2 0
gpio write 3 0
elif [ "$(echo "if (${var} > ${c10}) 1" | bc)" -eq 1 ] ; then
gpio write 0 1
gpio write 2 1
gpio write 3 1
elif [ "$(echo "if (${var} > ${c05}) 1" | bc)" -eq 1 ] ; then
gpio write 0 1
gpio write 2 1
gpio write 3 0
elif [ "$(echo "if (${var} > ${c006}) 1" | bc)" -eq 1 ] ; then
gpio write 0 1
gpio write 2 0
gpio write 3 0
else
gpio write 0 0
gpio write 2 0
gpio write 3 0
fi
done
Ошибки:
./cpu.proc: line 20: [: : integer expression expected
./cpu.proc: line 10: [: : integer expression expected
./cpu.proc: line 15: [: : integer expression expected
./cpu.proc: line 20: [: : integer expression expected
./cpu.proc: line 10: [: : integer expression expected
./cpu.proc: line 15: [: : integer expression expected
./cpu.proc: line 20: [: : integer expression expected
./cpu.proc: line 10: [: : integer expression expected
./cpu.proc: line 15: [: : integer expression expected
./cpu.proc: line 20: [: : integer expression expected
./cpu.proc: line 10: [: : integer expression expected
./cpu.proc: line 15: [: : integer expression expected
./cpu.proc: line 20: [: : integer expression expected
./cpu.proc: line 10: [: : integer expression expected
./cpu.proc: line 15: [: : integer expression expected
./cpu.proc: line 20: [: : integer expression expected
./cpu.proc: line 10: [: : integer expression expected
./cpu.proc: line 15: [: : integer expression expected
./cpu.proc: line 20: [: : integer expression expected
./cpu.proc: line 10: [: : integer expression expected
./cpu.proc: line 15: [: : integer expression expected
Благодаря всем, кто предпринимает свое время, чтобы посмотреть на это.
С наилучшими пожеланиями!