Tabuada simples - ShellScript
Estou tentando fazer uma tabuada simples em shellscript, a mesma deve solicitar um numero e com ele fazer a tabuada, sendo que deve ser mostrado a soma e multiplicação.
O que eu consegui fazer:
Alguem pode me dar uma ajudar?
O que eu consegui fazer:
#!/bin/bash
clear
function menu() {
echo "====================="
echo " ** TABUADA ** "
echo "====================="
echo "====================="
echo "Opções:"
echo "1) Para soma"
echo "2) Para multiplicação"
echo "3) Para sair"
read -p "Qual operação: " op
case $op in
1) soma ;;
2) mult ;;
3) sair ;;
*) "Opção "
clear ;
menu ;;
esac
}
function entrada () {
echo "Informe o numero"
read num
}
function soma() {
for i in $(seq 0 10)
do
echo "soma: $i + $i"
done
}
menu
Alguem pode me dar uma ajudar?
Roniere Almeida
Curtidas 0
Respostas
Roniere Almeida
05/05/2015
Se alguem puder dar uma olhada e conhecerem um pouco sobre o Shellscript.
GOSTEI 0
Jothaz
05/05/2015
Não tenho a pretensão de me intrometer em seu aprendizado, porém acredito que o uso do Shel Script seria mais recomendado para administração, instalação e configuração da sua distribuição do sistema operacional
Não que não seja possível criar um script para calculadora, só acredito que não teria um uso pratico.
Pelo que vejo nos seus posts sua intenção e se transforma em um profissional em Linux, então seria mais produtivo se concentrar em criar scripts que realmente possam fazer a diferença no ambiente corporativo. Assim caso você participe de algum processo de seleção estaria capacitado.
Algumas sugestões para criação de scripts:
1 - Formatar de uma vez várias partições do HD.
2 - Descobrir o sistema de arquivos que uma determinada partição do sistema está formatada, de forma a usar a informação mais adiante no script.
3 - Listar os usuários cadastrados no sistema.
4 - Verificar filesystem montados.
5 - Particionador do sistema.
6 - Montar/Desmontar FLOPPY.
7 - Montar/Desmontar CDROM.
8 - Para Sair.
9 - Identificar usuários que acessam sites "suspeitos" e avisá-los da política de empresa acerca do uso apropriado da Internet com recursos da empresa.
10 - Redução em lote do tamanho das imagens localizadas em um diretório e grava a imagem reduzida em um outro diretório.
11 - Cumprimentar o usuário no logado.
Se por acaso você não concordar favor desconsiderar as sugestões, pois se trata somente de minha visão pessoal e não quer dizer que esteja certa.
Não que não seja possível criar um script para calculadora, só acredito que não teria um uso pratico.
Pelo que vejo nos seus posts sua intenção e se transforma em um profissional em Linux, então seria mais produtivo se concentrar em criar scripts que realmente possam fazer a diferença no ambiente corporativo. Assim caso você participe de algum processo de seleção estaria capacitado.
Algumas sugestões para criação de scripts:
1 - Formatar de uma vez várias partições do HD.
2 - Descobrir o sistema de arquivos que uma determinada partição do sistema está formatada, de forma a usar a informação mais adiante no script.
3 - Listar os usuários cadastrados no sistema.
4 - Verificar filesystem montados.
5 - Particionador do sistema.
6 - Montar/Desmontar FLOPPY.
7 - Montar/Desmontar CDROM.
8 - Para Sair.
9 - Identificar usuários que acessam sites "suspeitos" e avisá-los da política de empresa acerca do uso apropriado da Internet com recursos da empresa.
10 - Redução em lote do tamanho das imagens localizadas em um diretório e grava a imagem reduzida em um outro diretório.
11 - Cumprimentar o usuário no logado.
Se por acaso você não concordar favor desconsiderar as sugestões, pois se trata somente de minha visão pessoal e não quer dizer que esteja certa.
GOSTEI 0
Roniere Almeida
05/05/2015
Eu te entendo perfeitamente Jothaz e queria que realmente fosse mais direcionado, meus estudos! hehehe, mas exercicios, são exercicios...cobrados ainda!!!
Mas o que você escreveu é realmente o que desejo!
Mas o que você escreveu é realmente o que desejo!
GOSTEI 0
Edvaldo Amorim
05/05/2015
Jothaz tem razão mas vi a situação é ter que fazer, sei como é.
Posso tentar te ajudar, mais tarde vejo com calma seu código.
Posso tentar te ajudar, mais tarde vejo com calma seu código.
GOSTEI 0
Roniere Almeida
05/05/2015
Se puder me ajudar eu agradeço!
GOSTEI 0
Edvaldo Amorim
05/05/2015
Acho que hoje a noite vou tentar ver seu código direito.
GOSTEI 0
Edvaldo Amorim
05/05/2015
Acho que hoje a noite vou tentar ver seu código direito.
GOSTEI 0
Jothaz
05/05/2015
Eu te entendo perfeitamente Jothaz e queria que realmente fosse mais direcionado, meus estudos! hehehe, mas exercicios, são exercicios...cobrados ainda!!!
Mas o que você escreveu é realmente o que desejo!
Mas o que você escreveu é realmente o que desejo!
Foi mal, não sabia que era exercício!
Não tenho Linux instalado a mão e não sou muito bom em shell, mas faria algo bem simples uma solução "donkey". kkkk
echo -n "Informe Primeiro numero: "; read valor1 echo -n "Informe a operação "; read operacao echo -n "Informe Segundo numero: "; read valor2 if [ "$operacao" = '-' ]; then tipo=Subtração elif [ "$operacao" = '+' ]; then tipo=Soma elif [ "$operacao" = '*' ]; then tipo=Multiplicação elif [ "$operacao" = '/' ]; then tipo=Divisão else echo "Operação inválida!" exit 1 fi echo -n "O resultado da operação: $tipo é = "; echo "$(($valor1 $operacao $valor2))"
Sei que esta horroroso e simplista e certamente contém erro de sintaxe, mas talvez lhe inspire.
Caso não lhe atenda favor desonsiderar e sinceramente esta é a ajuda que posso lhe dar.
GOSTEI 0
Randrade
05/05/2015
Não possuo muito conhecimento em shell. porém, encontrei um post aqui que explica bem, e possui até um exemplo de tabuada estática, que pode lhe ajudar.
Introdução ao shell script
Introdução ao shell script
GOSTEI 0
Roniere Almeida
05/05/2015
Jothaz, não esquenta, eu nem informei sobre isso.
Seu código, eu testei e apareceu alguns erros, porem, estou vendo o que pode ser. Mas mesmo assim obrigado!!!
[img]http://arquivo.devmedia.com.br/forum/imagem/273948-20150506-201427.png[/img]
Seu código, eu testei e apareceu alguns erros, porem, estou vendo o que pode ser. Mas mesmo assim obrigado!!!
[img]http://arquivo.devmedia.com.br/forum/imagem/273948-20150506-201427.png[/img]
GOSTEI 0
Edvaldo Amorim
05/05/2015
Tentando fazer Roniere!
GOSTEI 0
Roniere Almeida
05/05/2015
Não possuo muito conhecimento em shell. porém, encontrei um post aqui que explica bem, e possui até um exemplo de tabuada estática, que pode lhe ajudar.
Introdução ao shell script
Introdução ao shell script
Nunca tinha visto esse artigo! Valeu!
Ei Edvaldo, fica tranquilo e sem pressa, estou tentando resolver o meu e o do Jothaz.
GOSTEI 0
Jothaz
05/05/2015
Jothaz, não esquenta, eu nem informei sobre isso.
Seu código, eu testei e apareceu alguns erros, porem, estou vendo o que pode ser. Mas mesmo assim obrigado!!!
[img]http://arquivo.devmedia.com.br/forum/imagem/273948-20150506-201427.png[/img]
Seu código, eu testei e apareceu alguns erros, porem, estou vendo o que pode ser. Mas mesmo assim obrigado!!!
[img]http://arquivo.devmedia.com.br/forum/imagem/273948-20150506-201427.png[/img]
Pois é tem muitos anos que não uso Shell Script, então era de se esperar os erro, ainda mais que não testei.
Olha tente simplificar e depois vá refina do faça assim:
echo -n "Informe Primeiro numero: "; read valor1 echo -n "Informe a operação "; read operacao echo -n "Informe Segundo numero: "; read valor2 echo "$(($valor1 $operacao $valor2))"
Se funcionar vá melhorando.
A ideia é lhe passar a lógica básica.
GOSTEI 0
Roniere Almeida
05/05/2015
Firmeza!!! Tambem tentando fazer funcionar depois melhorar!
GOSTEI 0
Jothaz
05/05/2015
Olha fiz um teste em verificador de sintaxe shell online e passou.
Usei o script abaixo.
Usei o script abaixo.
echo -n "Informe Primeiro numero: "; read valor1 echo -n "Informe a operação "; read operacao echo -n "Informe Segundo numero: "; read valor2 echo -n "resultado: ";echo "$valor1$operacao$valor2" | bc
GOSTEI 0
Edvaldo Amorim
05/05/2015
Demorou!!! mas saiu, segui a ideia do seu exemplo.
#!/bin/bash
clear
function menu() {
echo "====================="
echo " ** TABUADA ** "
echo "====================="
echo "====================="
echo "Opções:"
echo "1) Para soma"
echo "2) Para multiplicação"
echo "3) Para sair"
read -p "Qual operação: " op
case $op in
1) soma ;;
2) mult ;;
3) exit ;;
esac
}
function entrada () {
echo "Informe o numero"
read num
}
function soma() {
echo "Informe o numero para somar"
read num
for i in $(seq 0 10)
do
echo "soma: $num + $i = $(( $num + $i )) "
done
}
menu
GOSTEI 0
Roniere Almeida
05/05/2015
Achei legal, só não entendi como funciona, coloquei para rodar e fui direcionado para outra pagina e...não entendi! hehehe
Vou testar Edvaldo, mais tarde te informo!
Vou testar Edvaldo, mais tarde te informo!
GOSTEI 0
Edvaldo Amorim
05/05/2015
Comigo deu certo, a multiplicação é o mesmo procedimento, basta mudar o operador!
GOSTEI 0
Roniere Almeida
05/05/2015
Está OK! certinho, valeu Edvaldo.
GOSTEI 0
Edvaldo Amorim
05/05/2015
Beleza Roniere, mostre código completo, pode ser?
GOSTEI 0
Roniere Almeida
05/05/2015
Amanha farei isso!
GOSTEI 0
Roniere Almeida
05/05/2015
O resultado é esse Jothaz?
[img]http://arquivo.devmedia.com.br/forum/imagem/273948-20150508-125452.jpg[/img]
[img]http://arquivo.devmedia.com.br/forum/imagem/273948-20150508-125452.jpg[/img]
GOSTEI 0
Edvaldo Amorim
05/05/2015
Roniere, deu certo?
GOSTEI 0
Roniere Almeida
05/05/2015
Sim Edvaldo, seguiu perfeitamente o meu exemplo! testado e está ok!
GOSTEI 0
Edvaldo Amorim
05/05/2015
Errei muito e pesquisei um pouco sobre como fazer mas o importante é que deu certo!, pode postar o código completo?
GOSTEI 0
Roniere Almeida
05/05/2015
#!/bin/bash
clear
function menu() {
echo "====================="
echo "Opções:"
echo "1) Para soma"
echo "2) Para multiplicação"
echo "3) Para sair"
read -p "Qual operação: " op
case $op in
1) soma ;;
2) mult ;;
3) exit ;;
*) echo "Opção Inexistente!"
sleep 5
clear
menu ;;
esac
}
function entrada () {
echo "Informe o numero"
read num
}
function soma() {
echo "Informe o numero para somar"
read num
for i in $(seq 0 10)
do
echo "soma: $num + $i = $(( $num + $i )) "
done
}
function mult() {
echo "Informe o numero para multiplicar"
read num
for i in $(seq 0 10)
do
echo "multiplicação: $num x $i = $(( $num * $i )) "
done
}
menu
GOSTEI 0
Roniere Almeida
05/05/2015
Jothaz???
GOSTEI 0