Pular para o conteúdo

Algoritmo para converter minutos em hora

Dica publicada em Shell Script / Introdução
Wagner Souza wagnerfs
Hits: 10.419 Categoria: Shell Script Subcategoria: Introdução
  • Indicar
  • Impressora
  • Denunciar

Algoritmo para converter minutos em hora

Dando continuidade ao meu artigo sobre Algoritmos em Shell Script, segue mais um bom exemplo de como utilizar as ferramentas desse ambiente para o aprendizado desta importante linguagem de script.

#!/bin/bash
#Autor: Wagner Souza
#Data: 15/01/2015
#Funcao: Algoritmo que converte minutos em horas

echo -n "Informe um valor em minutos a serem convertidos em horas: "
read min

# Esta primeira variável permite fazer a conversão dos minutos informado pelo
# usuário. A opção scale possibilita trabalhar com números decimais repassando o
# valor para a calculadora bc. O cálculo para converter minutos para hora
# é pegar a quantidade de minutos informado na variável $min e dividir por 60

conv1=$(echo "scale=2; $min/60" | bc)

# A variável conv3 vai trabalhar com os valores após a vírgula do resultado anterior
# Exemplo: se o usuário digitou 123 minutos, após a conversão feita na conv1, o valor
# obtido será 2,05 (123/60). Com o comando cut e a opção -c3-4 é utilizado para extrair
# os dois caracteres após a vírgula (0,5)

conv2=$(echo $conv1 | cut -c3-4)

# Finalmente, com os valores obtidos na variável conv2, podemos converter o restante
# dos números para minuto, ou seja, se o usuário digitou 123 minutos, em horas, corres-
# ponde a duas horas e 3 minutos. O valor de três minutos é obtido com a variável
# conv3 como pode ser visto abaixo.
# Aqui foi utilizado o comando tr para deletar (-d) o sinal de ponto final que fica
# quando é utilizado o comando cut. Faça um teste sem o comando tr e veja o que
# ocorre

conv3=$(echo "scale=2;($conv2/100)*60" | bc -l | cut -c1-2 | tr -d '.')
hour=$(echo "scale=2; $min/60" | bc | cut -c1-2 | tr -d '.' )

echo "Você digitou " $min " minutos."
echo "Que corresponde a: " $hour " hora(s) e " $conv3 " minutos"

Abaixo está o script completo sem os comentários para execução:

#!/bin/bash
#Autor: Wagner Souza
#Data: 15/01/2015
#Funcao: Algoritmo que converte minutos em horas

echo -n "Informe um valor em minutos a serem convertidos em horas: "
read min

conv1=$(echo "scale=2; $min/60" | bc)
conv2=$(echo $conv1 | cut -c3-4)
conv3=$(echo "scale=2;($conv2/100)*60" | bc -l | cut -c1-2 | tr -d '.')
hour=$(echo "scale=2; $min/60" | bc | cut -c1-2 | tr -d '.' )

echo "Você digitou " $min " minutos."
echo "Que corresponde a: " $hour " hora(s) e " $conv3 " minutos"

Não esqueça de salvar o arquivo com a extensão ".sh" e atribuir permissão de execução:

# chmod +x script.sh

É interessante rodar esse script da seguinte maneira:

# sh -x script.sh

Essa é uma forma de debug do script, onde você pode acompanhar passo-a-passo como este está sendo executado e solucionar possíveis problemas que venham a ocorrer.

Recomendo também a leitura do artigo para um maior esclarecimento e leituras complementares.

Bom pessoal, por hoje é só. Estarei disponibilizando mais scripts para estudos. Aguardem!

Instalação e configuração do comando sar no OpenSuSe

Exercício Prático LPIC 03

Erro de chave pública ao atualizar Chrome no Fedora 22

Exercício Prático LPIC 04

Guias das Melhores Práticas de Segurança para GNU/Linux

Renomear arquivos ou diretórios iniciados por "-"

Script básico para ouvir MP3 aleatórias

Otimizando Digitação no Terminal Bash

Performance awk x grep

who - Comando com exemplos

Nenhum comentário foi encontrado.

Contribuir com comentário

Entre na sua conta para comentar.