| 
  • If you are citizen of an European Union member nation, you may not use this service unless you are at least 16 years old.

  • You already know Dokkio is an AI-powered assistant to organize & manage your digital files & messages. Very soon, Dokkio will support Outlook as well as One Drive. Check it out today!

View
 

Calcular fatorial

Page history last edited by PBworks 17 years, 5 months ago

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:

 

seq -s \* $1

 

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:

 

seq -s \* $1 | bc

 

É 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.