Fórum Ubuntu Linux - PT
23 de Maio de 2013, 02:02 *
Olá, Visitante. Faça o login ou registre-se.
Perdeu o seu e-mail de ativação?

Login com nome de usuário, senha e duração da sessão
Notícias: Atualização no plugin de busca para Firefox e Internet Explorer.
 
   Home   Ajuda Regras Pesquisa Login Registre-se  
Anúncios
Páginas: [1]   Ir para o fundo
  Imprimir  
Autor Tópico: Criando uma rotina com menu  (Lida 921 vezes)
fabioon9
Usuário Ubuntu
*
Deslogado Deslogado

Mensagens: 6


Ver Perfil
« em: 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.
Registrado
Tota
Usuário Ubuntu
*
Deslogado Deslogado

Mensagens: 11.703



Ver Perfil
« Responder #1 em: 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
Registrado
fabioon9
Usuário Ubuntu
*
Deslogado Deslogado

Mensagens: 6


Ver Perfil
« Responder #2 em: 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
Registrado
irtigor
Equipe Ubuntu
Usuário Ubuntu
*****
Deslogado Deslogado

Mensagens: 3.217


Delete, delete, delete!


Ver Perfil
« Responder #3 em: 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 » Registrado
fabioon9
Usuário Ubuntu
*
Deslogado Deslogado

Mensagens: 6


Ver Perfil
« Responder #4 em: 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.
Registrado
irtigor
Equipe Ubuntu
Usuário Ubuntu
*****
Deslogado Deslogado

Mensagens: 3.217


Delete, delete, delete!


Ver Perfil
« Responder #5 em: 30 de Maio de 2012, 22:30 »

Olhe os comandos e materiais sugeridos. Para os últimos itens, olhe o tar, useradd e cron.
Registrado
fabioon9
Usuário Ubuntu
*
Deslogado Deslogado

Mensagens: 6


Ver Perfil
« Responder #6 em: 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>

Registrado
irtigor
Equipe Ubuntu
Usuário Ubuntu
*****
Deslogado Deslogado

Mensagens: 3.217


Delete, delete, delete!


Ver Perfil
« Responder #7 em: 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:
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 » Registrado
fabioon9
Usuário Ubuntu
*
Deslogado Deslogado

Mensagens: 6


Ver Perfil
« Responder #8 em: 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:

Registrado
irtigor
Equipe Ubuntu
Usuário Ubuntu
*****
Deslogado Deslogado

Mensagens: 3.217


Delete, delete, delete!


Ver Perfil
« Responder #9 em: 02 de Junho de 2012, 18:16 »

No bash
Código:
for i in a{1..5}; do
    > $i
done
Registrado
fabioon9
Usuário Ubuntu
*
Deslogado Deslogado

Mensagens: 6


Ver Perfil
« Responder #10 em: 03 de Junho de 2012, 13:56 »

Valeu irtigor!
Muito obrigado mais uma vez!
Registrado
Páginas: [1]   Ir para o topo
  Imprimir  
 
Ir para:  

Powered by MySQL Powered by PHP Tema desenvolvido por FaBMak e n3t0
Powered by SMF 1.1.18 | SMF © 2006-2009, Simple Machines
© 2013 Canonical Ltd. Ubuntu e Canonical são marcas registradas da Canonical Ltd.
XHTML 1.0 válido! CSS válido!