Convertendo bases numéricas
Publicado por Sandro Marcell 28/10/2007
[ Hits: 8.765 ]
Homepage: http://sanmarcell.wordpress.com
Simples script que faz conversão de bases numéricas, utilizando a interface dialog.
Obs.: São necessários o dialog e a calculadora bc.
#!/bin/bash --norc # # Convertendo bases numéricas. # # Sandro Marcell (sandro_marcell@yahoo.com.br) # # Obs.: São necessários o dialog e a calculadora bc. # Mensagens 'piscantes'! =) Echo() { echo -e "\e[1;5m$*\e[m" ; } # Programas necessários: [[ $(which dialog) ]] || { Echo "É necessário o dialog."; exit 1; } [[ $(which bc) ]] || { Echo "É necessária a calculadora BC."; exit 1; } # Título do script: TT="Conversor.sh - Convertendo valores em diferentes bases numéricas." # Laço principal: while : do # Menu na tela: OPC=$(dialog --stdout --no-cancel --backtitle "$TT" --radiolist \ "Escolha uma opção: *Pressione <ESC> para sair." 0 0 0 \ "1" "Converter decimal para binário, octal e hexadecimal" ON \ "2" "Converter hexadecimal para binário, octal e decimal" OFF \ "3" "Converter binário para octal, decimal e hexadecimal" OFF \ "4" "Converter octal para binário, decimal e hexadecimal" OFF \ --and-widget --no-cancel --inputbox "Digite o valor:" 0 0 ) # <ESC> sai do script: [[ $? == 255 ]] && break # Capturando a opção escolhida (1-4): IND=${OPC::1} # Capturando o valor digitado (na base 16 tudo é maiúsculo): VLR=$(echo ${OPC:1} | tr "a-f" "A-F") # Se nenhum valor for especificado: [[ $VLR ]] || { Echo "-> Especifique um valor." read -n 1 && continue ; } # Iniciando conversões: case $IND in 1) # Conversão de decimal. # Base 10 somente 0-9: grep -qs "[^0-9]" <(echo "$VLR") [[ $? == 0 ]] && { Echo "-> Na base 10 use de 0-9" read -n 1 && continue ; } # Convertendo... B=$(bc -l <<< "obase = 2 ; ibase = 10 ; $VLR") O=$(bc -l <<< "obase = 8 ; ibase = 10 ; $VLR") H=$(bc -l <<< "obase = 16; ibase = 10 ; $VLR") # Resultado: dialog --backtitle "$TT" --no-cancel\ --title "Resultado ($VLR):" --msgbox "\ Binário = $B\n\ Octal = $O\n\ Hexadecimal = $H" 0 0 ;; 2) # Conversão de hexadecimal grep -qs "[^0-9A-F]" <(echo "$VLR") [[ $? == 0 ]] && { Echo "-> Na base 16 use de 0-9 e A-F" read -n 1 && continue ; } B=$(bc -l <<< "obase = 2 ; ibase = 16 ; $VLR") O=$(bc -l <<< "obase = 8 ; ibase = 16 ; $VLR") D=$(bc -l <<< "obase = 10; ibase = 16 ; $VLR") dialog --backtitle "$TT" --no-cancel\ --title "Resultado ($VLR):" --msgbox "\ Binário = $B\n\ Octal = $O\n\ Decimal = $D" 0 0 ;; 3) # Conversão de binário grep -qs "[^0-1]" <(echo "$VLR") [[ $? == 0 ]] && { Echo "-> Na base 2 use de 0-1" read -n 1 && continue ; } O=$(bc -l <<< "obase = 8 ; ibase = 2 ; $VLR") D=$(bc -l <<< "obase = 10; ibase = 2 ; $VLR") H=$(bc -l <<< "obase = 16; ibase = 2 ; $VLR") dialog --backtitle "$TT" --no-cancel\ --title "Resultado ($VLR):" --msgbox "\ Octal = $O\n\ Decimal = $D\n\ Hexadecimal = $H" 0 0 ;; 4) # Conversão de octal grep -qs "[^0-7]" <(echo "$VLR") [[ $? == 0 ]] && { Echo "-> Na base 8 use de 0-7" read -n 1 && continue ; } B=$(bc -l <<< "obase = 2 ; ibase = 8 ; $VLR") D=$(bc -l <<< "obase = 10; ibase = 8 ; $VLR") H=$(bc -l <<< "obase = 16; ibase = 8 ; $VLR") dialog --backtitle "$TT" --no-cancel\ --title "Resultado ($VLR):" --msgbox "\ Binário = $B\n\ Decimal = $D\n\ Hexadecimal = $H" 0 0 ;; *) break esac done # Fim
Adicionar e Deletar usuários do Samba/Squid
Samba - Forçar usuário a alterar senha no próximo logon
Formatar o terminal com cores e efeitos
Calculo de notas - Incrementar um array em shell dinamicamente
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Flatpak: remover runtimes não usados e pacotes
Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2
Como atualizar o Debian 8 para o 10 (10)
Dica sobre iptables ACCEPT e DROP (6)
NGNIX - Aplicar SNAT para evitar roteamento assimetrico (29)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta