Você não comparou com sucesso os números no bash, você apenas testou que o "bash" (o comando test ) testou com sucesso o tamanho da string 2.0000000000000000000000000001 e redirecionou a saída inexistente para uma string. arquivo chamado 2 .
Você deseja o operador -gt , exceto:
[ 2.0000000000000000000000000001 -gt 2 ] && echo yes
-bash: [: 2.0000000000000000000000000001: integer expression expected
Você pode pensar em:
[[ 2.0000000000000000000000000001 > 2 ]] && echo yes
e obtenha:
yes
exceto que você não está comparando inteiros nesse ponto, você está classificando strings:
[[ 9 > 11 ]] && echo yes
yes
Para comparar números de ponto flutuante em Python, consulte Stack Overflow para mais detalhes, como este