[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Re: [shell-script] Re: [shell-scr ipt] Re: [shell-scr
From: |
itamarnet |
Subject: |
Re: [shell-script] Re: [shell-script] Re: [shell-scr ipt] Re: [shell-script] Re: Separar os dígitos de um númer o |
Date: |
31 Jan 2019 22:07:43 +0000 |
Grande Mestre Julio.
A questão que levantou foi bem peculiar e resolvi testar em algo um conjunto de programas similares, mas com implementações diferentes, então usei o gawk, nawk, mawk e o 'busybox awk'.
O script que usei foi o mesmo, inspirado no exemplo que usou do bc:
'BEGIN {print 4 * atan2(1,1)}'
Sem qualquer modificação o que obtive foi:
gawk: 3.14159
nawk: 3,14159
mawk: 3,14159
busybox awk: 3.14159
Setando as variáveis LC_ALL=pt_BR.UTF-8 o resultado foi:
gawk: 3.14159
nawk: 3,14159
mawk: 3,14159
busybox awk: 3.14159
Setando a variável LC_ALL=en_EN o resultado foi:
gawk: 3.14159
nawk: 3.14159
mawk: 3.14159
busybox awk: 3.14159
Nos exemplos acima gawk e 'busybox awk' não tem alterações independente das mudanças da variáveis de ambiente, no caso do nawk e mawk isso fez diferença no resultado.
Ao usar LANG no lugar de LC_ALL nenhum deles foi influenciado, mantendo o comportamento do primeiro exemplo.
Quero fazer uma referência especial ao gawk, que possue a opção -N ou --use-lc-numeric:
gawk -N 'BEGIN {print 4 * atan2(1,1)}'
3,14159
LC_ALL=en_EN gawk -N 'BEGIN {print 4 * atan2(1,1)}'
3.14159
Então pelo que parece esse comportamento depende diretamente de como foi implementado isso no comando pelos desenvolvedores, então não deve haver um padrão comportamental e como sempre é necessário consultar as man pages dos comandos para definir isso.
É possível que haja diferenças também entre versões e sistemas operacionais, mas acredito que esse pequeno teste dá um vislumbre do que acontece.
Acho que é só pessoal
[]'s
Itamar