Raiz Quadrada (Square Root) para Bash
Publicado por Sergio Spoladore 06/11/2006
[ Hits: 9.261 ]
Homepage: http://yetlinux.blogspot.com
Este raro script calcula a raiz quadrada de um número natural entre 0 e 2^63 - 1. Caso ultrapasse este valor, haverá erro de cálculo. Creio ter corrigido todos os bugs. Serve como exercício de programação.
Deixo que vocês o compreendam.
#!/bin/bash
verif (){
str1="$1"
[[ -z "$str1" ]] && {
echo "Use $0 <numero>";
echo "<numero> entre 0 e 9223372036854775807.";
echo "Caso ultrapasse, havera erro de calculo.";
exit 1;
}
str2=${str1//[0123456789]/}
[[ -n "$str2" ]] && {
echo "Use somente digitos de 0 a 9."
exit 1;
}
}
cortazero(){
a1=$1;
while [ "$a1" != "$b1" ]; do
b1=$a1;
a1=${a1##0};
done;
echo $a1;
}
sqrt(){
tmp1=$1;
[[ $((${#tmp1}%2)) -eq 1 ]] && tmp1='0'$tmp1;
j=0;
rq='0';
rt='';
while [ -n "${tmp1:$j:2}" ]; do
rt=$rt${tmp1:$j:2};
rt=`cortazero $rt`;
[[ -z "$rt" ]] && rt='0';
rq=`cortazero $rq`;
[[ -z "$rq" ]] && rq='0';
for ((i=1;i<=10;i++));do
[[ $rt -lt $(( (`cortazero $((2*$rq))`$i) *$i)) ]] && {
rt=$((rt-(`cortazero $((2*$rq))`$((i-1)))*$((i-1))));
rq=$rq$((i-1));
break;
}
done;
let j+=2;
done;
rq=`cortazero $rq`;
[[ -z "$rq" ]] && rq='0';
echo $rq;
}
verif $1;
sqrt $1;
Ativar serviço que está parado
Verifica quais ports necessitam de atualização
Angelinux Scripts - Teste de desempenho da sua maquina!
Medindo a velocidade de conexão
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Ativando e usando "zoom" no ambiente Cinnamon
Vídeo Nostálgico de Instalação do Conectiva Linux 9
Como realizar um ataque de força bruta para desobrir senhas?
Aderencia a Obsolencia Programada. (2)
Não consigo criar pasta em um HD secundário. [RESOLVIDO] (0)
Jogos baixados na Central de Aplicativos mas que não abrem (2)









