Algoritmo para converter minutos em hora
Dica publicada em Shell Script / Introdução
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.
Abaixo está o script completo sem os comentários para execução:
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!
#!/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!