Como o macOS tem /dev/urandom , você deve ser capaz de fazer:
od -An -vtd8 -N8 < /dev/urandom
No entanto, de acordo com aqueles que tentaram em um sistema macOS real (veja os comentários), ele não funciona lá. Como o macOS deve ser um sistema Unix certificado, isso significa que é um bug, pois o POSIX especifica claramente o comportamento desse comando . A única coisa que POSIX deixa de especificar (implementação definida) é a ordem de bytes (que não nos importamos aqui, pois são todos os bytes aleatórios).
Como alternativa, você pode usar ksh / bash / zsh $RANDOM aqui. Mesmo que o macOS ' sh seja baseado em bash hoje em dia, seria melhor mudar para bash / zsh (ou ksh implementações diferentes de mksh cuja utilização aritmética de 32bits) como $RANDOM não é sh feature, portanto, pode não funcionar na versão futura do macOS se eles decidirem mudar para um shell diferente.
m=32768 # $RANDOM span
long=$((RANDOM+RANDOM*m+RANDOM*m*m+RANDOM*m*m*m+RANDOM*m*m*m*m))
ou:
long=$((RANDOM|(RANDOM<<15)|(RANDOM<<30)|(RANDOM<<45)|(RANDOM<<60)))
São 5 * 15 == 75 bits, mas serão truncados para 64 bits pelo shell.
Na caixa de ferramentas POSIX, a maneira de gerar números aleatórios é com awk ' rand() , então você pode fazer:
awk 'BEGIN{srand(); printf "%.20g\n", rand() * (2^64) - (2^63)}'
Tenha em mente que com muitas
awk implementações (aquelas que baseiam a
srand() semente no resultado de
time(3) ), você obterá a mesma saída se você executá-lo duas vezes no mesmo segundo.
Além disso, devido à maneira como os números de ponto flutuante são representados, eu esperaria que houvesse alguns números de 64 bits (como 2 63 -1) que ele nunca produziria.