[
colchetes são alias para o comando test
e não há sinal >
no comando de teste regular. Use [ $i -gt 3 ]
$ for i in {1..5}; do echo $i; if [ $i -gt 3 ] ; then echo $i; fi; done
1
2
3
4
4
5
5
Você também pode usar a expansão aritmética do bash (())
$ for i in {1..5}; do echo $i; if (( $i>3 )) ; then echo $i; fi; done
1
2
3
4
4
5
5
Você também pode usar expr
, mas eu garanto 100% que você continuará esquecendo de \
escapar dos <
e >
sings, além de redirecionar a saída para /dev/null
:
$> if expr 3 \> 2 > /dev/null ; then echo YES; else echo NO ; fi
YES
$> if expr 3 \< 2 > /dev/null ; then echo YES; else echo NO ; fi
NO