Script para cálculo de fatorial
Por Júlio Cezar Neves
Fonte: http://www.dicas-l.com.br/cantinhodoshell/cantinhodoshell_20061017
#!/bin/bash
# Programa para calculo de fatorial.
# chame o programa pasando o numero
# cujo fatorial sera calculado.
[ $# -ne 1 ] && exit 1
echo $(($(seq -s \* $1)))
A primeira linha encerra o programa caso não tenha sido passado o número para calcular o fatorial, a segunda é o pulo do gato. Vamos analisá-la em partes:
esse comando produz uma seqüência numérica de 1 até o parâmetro passado ($1), usando como caractere separador entre os números um asterisco. Supondo que o número passado como parâmetro foi 5, após a execução deste comando teríamos: 1*2*3*4*5
Como temos um comando (seq) dentro de outro (echo) usamos $(seq -s \* $1), onde a construção $(...) foi usada para dar prioridade de execução ao comando no seu interior.
Parece mas não ésse :)! A construção $((...)) parece com a anterior, mas é totalmente diferente. Ela chama o interpretador aritmético do shell, que identifica o seu interior como uma operação aritmética inteira e executa esta operação.
OBS: também funcionaria se a segunda linha fosse assim:
É por isso que eu sempre digo: "Nunca pergunte se dá para fazer em Shell. A pergunta correta é: qual é a melhor maneira de se fazer em shell"
Abração, Julio
Comments (0)
You don't have permission to comment on this page.