shell-script-pt
[Top][All Lists]
Advanced

[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


reply via email to

[Prev in Thread] Current Thread [Next in Thread]