Bem, eu me sinto bobo.
O problema é que /bin/bash
é o Bash 3.2 do OS X. O Homebrew instala o Bash em /usr/local/bin/bash
, que é o que estou usando no meu terminal. Se eu mudar o shebang para isso, funciona como esperado.
Acho que encontrei um bug muito estranho no gerador de números aleatórios do Bash ( $RANDOM
).
Mostrar é mais fácil do que contar, então, eis o que acontece:
O objetivo é obter dígitos aleatórios. Se eu executar isso, recebo 20 dígitos aleatórios conforme o esperado.
for i in {1..20}; do echo $((RANDOM % 10)); done
Mas se a declaração echo
estiver em um script, obtenho um padrão muito estranho de dígitos.
$ cat randomtest
#!/bin/bash
echo $((RANDOM % 10))
$ for i in {1..20}; do ./randomtest; done
9
8
8
6
7
5
5
4
4
2
3
1
1
1
0
0
8
9
7
7
O que está acontecendo no mundo?
Informação do sistema:
Bem, eu me sinto bobo.
O problema é que /bin/bash
é o Bash 3.2 do OS X. O Homebrew instala o Bash em /usr/local/bin/bash
, que é o que estou usando no meu terminal. Se eu mudar o shebang para isso, funciona como esperado.
Tags bash bash-scripting