Isso porque você está verificando se a string gpio -g read 22
é maior que 1. Como gpio -g read 22
não é um número, você recebe esse erro.
Você não explica o que está tentando fazer, mas acredito que queira comparar a saída do comando gpio
. Para fazer isso, você precisa colocar o comando em $()
ou backticks ( ''
):
x=$(gpio -g read 22)
if [ "$x" -ge 1 ]
then
gpio -g write 23 1
fi
Ou, mais simplesmente:
[ "$(gpio -g read 22)" -ge 1 ] && gpio -g write 23 1
A atribuição foo='command'
não é executada em command
. A variável foo
recebe o valor da string command
e não da saída.