Você está perdendo algum espaço em branco: [ $BET=0 ]
deve ser [ $BET = 0 ]
. Melhor ainda, faça uma comparação numérica com [ $BET -eq 0 ]
.
Veja man test
para a diferença entre os três.
P.S .: Execute shellcheck
(do pacote de mesmo nome) para ajudá-lo a identificar potenciais falhas e problemas em scripts de shell. Para o seu script, imprime:
In - line 2:
while [ $BET=0 ]
^-- SC2077: You need spaces around the comparison operator.
In - line 4:
if [ $(gpio read 21) -eq 1 ]
^-- SC2046: Quote this to prevent word splitting.
In - line 7:
elif [ $(gpio read 22) -eq 1 ]
^-- SC2046: Quote this to prevent word splitting.
In - line 10:
elif [ $(gpio read 23) -eq 1 ]
^-- SC2046: Quote this to prevent word splitting.
In - line 13:
elif [ $(gpio read 24) -eq 1 ]
^-- SC2046: Quote this to prevent word splitting.
In - line 16:
elif [ $(gpio read 25) -eq 1 ]
^-- SC2046: Quote this to prevent word splitting.