Raiz Quadrada (Square Root) para Bash
Publicado por Sergio Spoladore 06/11/2006
[ Hits: 9.095 ]
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;
Renomeia diretorio,subdiretorio e arquivos de maiuscula > minuscula
Script para compilação manual do nessus
Pra quem não usa WhatsUp e Nagios mas tem um *inx.
Fluxbox - Slideshow de wallpapers aleatórios
Resolver problemas de Internet
Como compartilhar a tela do Ubuntu com uma Smart TV (LG, Samsung, etc.)
Descritores de Arquivos e Swappiness
Como converter imagens PNG/JPEG para SVG em linha de comando
Fez porcaria no teu repositório Git? Aprenda a restaurar uma versão anterior do seu código!
Restaurando Fontes de Download do Hydra no Linux
Atualizando "na marra" o YT-DLP quando começa a dar erro de downloads
Como instalar o WPS com interface e corretor ortográfico em PT-BR no Arch Linux
Jogos baixados na Central de Aplicativos mas que não abrem (0)
Configuração de rede proxmox (2)