Se você quiser que sua variável value
seja 00
, não a declare como um inteiro em bash
. Declará-lo como um inteiro com declare -i
solicitará que o shell o avalie como um inteiro, e o valor inteiro de 00
seja zero.
Observe que o seguinte código irá gerar not same
:
declare -i value='00'
optics_status='00'
if [ "$optics_status" = "$value" ]; then
echo 'same'
else
echo 'not same'
fi
A alteração de declare -i value='00'
para value='00'
resultará na produção de same
.
Observe também as citações das expansões de variáveis acima.
Você poderia, é claro, também considerar a promoção dos valores de ambas as variáveis para números inteiros comparando-os usando
if [ "$optics_status" -ne "$value" ]; then
ou
if (( optics_status != value )); then
mas assume que você sabe que $optics_value
é sempre uma string que pode ser convertida em um inteiro (e um inteiro decimal ao invés de um inteiro inteiro também).