Autor Tópico: Criando uma rotina com menu  (Lida 3218 vezes)

Offline fabioon9

  • Usuário Ubuntu
  • *
  • Mensagens: 6
    • Ver perfil
Criando uma rotina com menu
« Online: 30 de Maio de 2012, 15:29 »
Olá pessoal, boa tarde!

Estou precisando saber como fazer um script de uma rotina(não sei se esse é o nome correto), sendo que não sei nada de linux,
absolutamente nada, rs, e tenho que resolver esse problema:


- comece o seu script shell apresentando as seguintes opções de menu (while) para o usuário e execute cada uma delas:


Opções para usuário:


(1) criar três subdiretórios (av1, av2 e av3) no seu diretório home

(2) criar três arquivos (nota1, nota2 e nota3) em av1, av2 e av3 respectivamente

(3) ler as notas (teclado) e armazenar em nota1, nota2 e nota3

(4) mostrar a arvore de diretórios e os conteúdos dos arquivos nota1, nota2 e

nota3

(5) finalizar o menu


- pausa


- continuando o seu script, utilizando comandos de repetição (for) crie 5 arquivos: a1, a2, a3, a4 e a5 no seu diretório home e ao final liste este diretório corrente (home) contendo esses arquivos.


-pausa


- salve todo o conteúdo do seu diretório home em um arquivo de nome arq.tar, utilizando o comando tar.

Com o mesmo comando tar mostre o resultado dessa operação.


-pausa


- entrou um funcionário novo você deve ler o nome desse funcionário e criar uma conta para ele. Como a criação de conta só é possível como usuário root, simplesmente ecoe os comandos que criariam essa conta.


-pausa


- você também deve colocar esse script para ser executado todo o domingo às 14:00hs.



Não tenho a mínima idéia de como fazer isso.

Offline Tota

  • Usuário Ubuntu
  • *
  • Mensagens: 14.982
    • Ver perfil
Re: Criando uma rotina com menu
« Resposta #1 Online: 30 de Maio de 2012, 15:46 »
Ola

Isto está cheirando a lição de casa...ehehehehe

Estudar não é uma opção ?

Vá postando o que já fez ou cite todos os links que pesquisou para o forum poder te ajudar.

Resposta pronta para trabalho de casa dificilmente vão te dar.

A propósito, qual Ubuntu está utilizando?

[]'s

Offline fabioon9

  • Usuário Ubuntu
  • *
  • Mensagens: 6
    • Ver perfil
Re: Criando uma rotina com menu
« Resposta #2 Online: 30 de Maio de 2012, 16:33 »
Consegui fazer isso, mas não sei se tá certo e ainda tá faltando coisa:


#!/bin/bash
menu ()
{
echo "
(1) criar três subdiretórios (av1, av2 e av3) no seu diretório home.
(2) criar três arquivos (nota1, nota2 e nota3) em av1, av2 e av3 respectivamente.
(3) ler as notas (teclado) e armazenar em nota1, nota2 e nota3.
(4) mostrar a arvore de diretórios e os conteúdos dos arquivos nota1, nota2 e nota3.
(5) finalizar o menu."

read -p "Opcao:" i
}

menu

while [ $i!=5 ];do

case "$i" in
1)
mkdir av1 av2 av3
;;
2)
touch av1/nota1 av2/nota2 av3/nota3
;;
3)
read -p "Digite a nota av1:" nota
echo $nota > av1/nota1
;;
4)   

;;
5)
exit
;;
*)
echo "Opção inválida!"
;;

esac

menu
done

Offline irtigor

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.344
  • Delete, delete, delete!
    • Ver perfil
Re: Criando uma rotina com menu
« Resposta #3 Online: 30 de Maio de 2012, 17:15 »
No item 3 faltou ler e armazenar a nota2 e nota3. O 4 você consegue com os comandos ls e cat. No 5 use break no lugar de exit, pra pode continuar com o que está depois de "- pausa". Sugiro a leitura dos seguintes links
http://www.funtoo.org/wiki/Linux_Fundamentals,_Part_1
http://www.funtoo.org/wiki/Bash_by_Example,_Part_1
http://wiki.bash-hackers.org/start
http://mywiki.wooledge.org/EnglishFrontPage
« Última modificação: 30 de Maio de 2012, 17:18 por irtigor »

Offline fabioon9

  • Usuário Ubuntu
  • *
  • Mensagens: 6
    • Ver perfil
Re: Criando uma rotina com menu
« Resposta #4 Online: 30 de Maio de 2012, 22:20 »
e como eu faria para digitar e armazenar as notas av2 e av3 ?

seria assim ?

read -p "Digite a nota av1:" nota
echo $nota > av1/nota1
read -p "Digite a nota av2:" nota2
echo $nota2 > av2/nota2
read -p "Digite a nota av3:" nota3
echo $nota3 > av3/nota3
;;


Meu grande probelma continua sendo no resto do script:


4) mostrar a arvore de diretórios e os conteúdos dos arquivos nota1, nota2 e

nota3

(5) finalizar o menu


- pausa


- continuando o seu script, utilizando comandos de repetição (for) crie 5 arquivos: a1, a2, a3, a4 e a5 no seu diretório home e ao final liste este diretório corrente (home) contendo esses arquivos.


-pausa


- salve todo o conteúdo do seu diretório home em um arquivo de nome arq.tar, utilizando o comando tar.

Com o mesmo comando tar mostre o resultado dessa operação.


-pausa


- entrou um funcionário novo você deve ler o nome desse funcionário e criar uma conta para ele. Como a criação de conta só é possível como usuário root, simplesmente ecoe os comandos que criariam essa conta.


-pausa


- você também deve colocar esse script para ser executado todo o domingo às 14:00hs.

Offline irtigor

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.344
  • Delete, delete, delete!
    • Ver perfil
Re: Criando uma rotina com menu
« Resposta #5 Online: 30 de Maio de 2012, 22:30 »
Olhe os comandos e materiais sugeridos. Para os últimos itens, olhe o tar, useradd e cron.

Offline fabioon9

  • Usuário Ubuntu
  • *
  • Mensagens: 6
    • Ver perfil
Re: Criando uma rotina com menu
« Resposta #6 Online: 01 de Junho de 2012, 21:30 »
consegui fazer isso, mas não sei como juntar no codigo shell:



continuando o seu script, utilizando comandos de repetição (for) crie 5 arquivos: a1, a2, a3, a4 e a5 no seu diretório home e ao final liste este diretório corrente (home) contendo esses arquivos.
Resposta:

ls -la /home

-pausa

- salve todo o conteúdo do seu diretório home em um arquivo de nome arq.tar, utilizando o comando tar.
Resposta:
tar -czvf arq.tar a1 a2 a3 a4 a5

para descompactar é tar -zxvf arq.tar

Com o mesmo comando tar mostre o resultado dessa operação.
Resposta:
ls -la *.tar
-pausa

- entrou um funcionário novo você deve ler o nome desse funcionário e criar uma conta para ele. Como a criação de conta só é possível como usuário root, simplesmente ecoe os comandos que criariam essa conta.

Resposta:
sudo su -

-pausa


crontab -e
00 14 * * 0 ./<nome do script>


Offline irtigor

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.344
  • Delete, delete, delete!
    • Ver perfil
Re: Criando uma rotina com menu
« Resposta #7 Online: 01 de Junho de 2012, 22:25 »
consegui fazer isso, mas não sei como juntar no codigo shell:
É só copiar e colar. Não tem segredo.
continuando o seu script, utilizando comandos de repetição (for) crie 5 arquivos: a1, a2, a3, a4 e a5 no seu diretório home e ao final liste este diretório corrente (home) contendo esses arquivos.
Resposta:

ls -la /home
Faltou o laço for com a criação de 5 arquivos. Reveja os links e/ou use essa referencia http://aurelio.net/shell/canivete/
- salve todo o conteúdo do seu diretório home em um arquivo de nome arq.tar, utilizando o comando tar.
Resposta:
tar -czvf arq.tar a1 a2 a3 a4 a5

para descompactar é tar -zxvf arq.tar

Com o mesmo comando tar mostre o resultado dessa operação.
Resposta:
ls -la *.tar
Você salvou os 5 arquivos, não todo o conteúdo do diretório home, comprimiu com o gzip (não foi pedido) e listou o "arq.tar" no lugar do conteúdo dele. Sugestão
Código: [Selecionar]
tar -cvf arq.tar ~/* # compacta
tar -xvf arq.tar # descompacta
tar -tvf arq.tar # lista
- entrou um funcionário novo você deve ler o nome desse funcionário e criar uma conta para ele. Como a criação de conta só é possível como usuário root, simplesmente ecoe os comandos que criariam essa conta.

Resposta:
sudo su -
Errado, "sudo su -" faz login como root.

-----
Outra coisa, "home" no contexto não é /home, é /home/seu-nome-de-usuario, então no lugar de "ls -la /home" use "ls ~", "ls /home/seu-nome-de-usuario" ou simplesmente "ls" porque é o diretório corrente.
« Última modificação: 01 de Junho de 2012, 22:32 por irtigor »

Offline fabioon9

  • Usuário Ubuntu
  • *
  • Mensagens: 6
    • Ver perfil
Re: Criando uma rotina com menu
« Resposta #8 Online: 02 de Junho de 2012, 16:23 »
Obrigado irtigor por sempre responder as minha dúvidas tão rápido.

Só não conseguir entender como fazer essa parte do for, me ajuda por favor. Já li vários artigos e não entendi:


Offline irtigor

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.344
  • Delete, delete, delete!
    • Ver perfil
Re: Criando uma rotina com menu
« Resposta #9 Online: 02 de Junho de 2012, 18:16 »
No bash
Código: [Selecionar]
for i in a{1..5}; do
    > $i
done

Offline fabioon9

  • Usuário Ubuntu
  • *
  • Mensagens: 6
    • Ver perfil
Re: Criando uma rotina com menu
« Resposta #10 Online: 03 de Junho de 2012, 13:56 »
Valeu irtigor!
Muito obrigado mais uma vez!