INSTITUTO POLITÉCNICO DE TOMAR Escola Superior de Tecnologia



Documentos relacionados
Formação de Administradores de Redes Linux LPI level 1. Aula 3 SENAC TI Fernando Costa

Descrição da aplicação

Primeiro Trabalho: Desempenho de protocolos de encaminhamento em redes ad hoc móveis

Licenciatura em Engenharia Informática Departamento de Engenharia Informática Instituto Superior de Engenharia do Porto

Programação WEB II. Conhecendo o PHP. Prof: Kelly E. Medeiros Bacharel em Sistema de Informação. Módulo III

Inserindo e Listando registros

Folhas de Cálculo Excel Ficha Prática 6 Pág. 1 de 7

Bem vindo Joe Ramone!

Informática de Gestão 1º ano / 1º semestre Ano letivo: 2014/2015. Visual Basic VBA

Manual do Utilizador GESTFOR Gestão da Formação

Iniciando PHP. Agenda

Manual de Administração Intranet BNI

27/04/2012 OBJETIVOS SEQUÊNCIAS DE ESCAPE PROGRAMAÇÃO WEB AVANÇADA

Segurança de Aplicações Aula 14

Programação WEB II. Formulários Em PHP. Métodos GET e POST progweb2@thiagomiranda.net. Thiago Miranda dos Santos Souza

Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre

Uso Eficiente da Linha de Comando com os Shells do Unix. Fábio Olivé

Daniel Darlen Corrêa Ribeiro, Eduardo Campos dos Santos. ARL Universidade Federal de Lavras (UFLA) Lavras MG - Brasil

Programação Web com PHP. Prof. Wylliams Barbosa Santos Optativa IV Projetos de Sistemas Web

Impressão do Manual do Utilizador

Aula de JavaScript 05/03/10

ILP - Introdução à Linguagem de Programação. Plano de estudo: - Constantes e variáveis. - Atribuindo valores às variáveis.

Programação em MATLAB

Banco de Dados. Microsoft Access. Índice

Apresentação do VisualA

Ajuda em php + xml + sql Posted by kabonga /07/15 23:56

FMH Mestrado Gestão do Desporto Sistemas de Informação

Estruturas de Controle em PHP

UNIDADE 1 TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO

ESTRATÉGIAS /ACTIVIDADES. Fazer uma abordagem teórica e simples

LINGUAGEM C. Estrutura básica de um programa

Scripts Shell. João Medeiros 1 / 20

FCA - EDITORA DE INFORMÁTICA I

DISCIPLINA: Tecnologias da Informação e Comunicação ANO: 9º. Windows 7 Office 2010 Internet Explorer. Cd-roms COMPETÊNCIAS A DESENVOLVER

XML Básico. Murillo Vasconcelos Henriques B. Castro. 17 de maio de 2011

Base de dados I. Uma base de dados é um simples repositório de informação relacionado com um determinado assunto ou finalidade

PROGRAMAÇÃO ORIENTADA A OBJETO EM PHP

Departamento de Engenharia de Electrónica e Telecomunicações e de Computadores Licenciatura em Engenharia Informática e de Computadores

Programação em Shell Script (Linux Administration) Jacson RC Silva <jeiks>

Programação III / Estruturas de Dados. Enunciado do Trabalho Prático

Personal Home Page PHP. Prof. Luiz Claudio F. de Souza

Configuração do Interpretador de Comandos

1. Verificar se a Microsoft.NET Framework 2.0 está instalada. Se não estiver, efectuar o download a partir do link e instalar:

LISTA DE COMANDOS DO LINUX 1

Tarefa Orientada 4 Criação das restantes tabelas

Expressões regulares

Universidade Federal do Espírito Santo Centro de Ciências Agrárias CCENS UFES Departamento de Computação. Shell Script

Separação de fluxos TCP e UDP

Enviado dados para o PHP através de formulário

Programando em C++ Histórico da Linguagem C

P r o g r a m a ç ã o d e C o m p u t a d o r e s 1 o S e m P r o f. A n d r é A m a r a n t e L u i z L A B 5 tag %2d while printf PE1:

MANUAL DE UTILIZAÇÃO DO SISTEMA HERMES

UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia Departamento de Informática

Tipo de Dados em Linguagem C

Panorâmica geral sobre PHP. PHP é uma linguagem que permite fazer. um ficheiro em PHP contem código PHP misturado com HTML.

Boletim Técnico. A construção do relatório dentro do RM, acessando os dados do Protheus está descrita no documento fornecido pela RM.

Actualizaç ões e novas funcionalidades. Inoxnet. Versã o (c) EBASE Lda.

Práticas de Desenvolvimento de Software

COMPUTAÇÃO e PROGRAMAÇÃO

INSTITUTO POLITÉCNICO DE BRAGANÇA ESCOLA SUPERIOR DE TECNOLOGIA E DE GESTÃO. Engenharia Electrotécnica. Microprocessadores. 2ºano - 1ºsemestre

GimobWEB Plataforma de gestão imobiliária

1 Objetivos da Oficina

Relatório Interno Aplicação computacional

Programação Web Prof. Wladimir

PLANIFICAÇÃO ANUAL ANO LETIVO DE 2013/2014 Curso de Educação e Formação Tipo 3 Nível 2

1.1. Clique no botão Iniciar, seleccione Todos os programas, Microsoft Office e no submenu aberto escolha o programa Microsoft FrontPage.

LÓGICA DE PROGRAMAÇÃO. Professor Celso Masotti

A p o s t i l a M i c r o s o f t A c c e s s 97

Avaliação do Desempenho do. Pessoal Docente. Manual de Utilizador

Introdução a. Shell Script. Clésio Matos

Bases de Dados 2007/2008. Aula 8

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE CENTRO DE TECNOLOGIA ENGENHARIA DE COMPUTAÇÃO E AUTOMAÇÃO

Manual de Utilização

MANUAL DE UTILIZAÇÃO. Help & Manual Versão Build 2537

Universidade Fernando Pessoa

Exercícios de Revisão Java Básico

Noções Várias em Visual Basic

Linguagem de Programação I

Manual de Utilizador. Disciplina de Projecto de Sistemas Industriais. Escola Superior de Tecnologia. Instituto Politécnico de Castelo Branco

Sistemas Operativos. Engenharia de Sistemas e Informática. Valter Alves Paulo Almeida. Escola Superior de Tecnologia de Viseu

GUESTBOOK UTILIZANDO INTERAÇÃO FLASH+PHP

Internet. Gabriela Trevisan Bacharel em Sistemas de Infomação

Scientific Electronic Library Online

Consultar Dados de Conta

GladiusSimpleReport. Este manual, visa mostrar, como utilizar o GladiusSimpleReport atravéz de exemplos.

1 Contextualização 3 2 Administração do Joomla 5 3 Painel de controlo Menu sítio Menu utilizadores Outras funcionalidades 8 4

Especificação do Trabalho

Work Flow no EGS F&B Control

Bem-vindo ao nosso mundo virtual! Guia do Portal de Ensino à Distância da Get Training 1

Engenharia de Software. Enunciado da Segunda Parte do Projecto

SAMUEL INFORMÁTICA SEAP Curso Básico de MS Office Word 2010/BrOffice Writer

EIC. Projecto I. Manual do Utilizador. Vídeo Vigilância Abordagem Open Source. Curso: Engenharia de Informática e Comunicações Ano Lectivo: 2005/2006

Módulo de registo de eventos. guia de utilização

Transcrição:

INSTITUTO POLITÉCNICO DE TOMAR Escola Superior de Tecnologia Departamento de Engenharia Informática SISTEMAS OPERATIVOS Trabalho Prático Scripts CShell 2003/2004 José Nicolau (5205) Tiago Pina (5223)

!/bin/csh ------------------------------------------------------------------------------------- Autor : Jose Nicolau (5205) & Tiago Pina (5223) IPT - EI/SO 2003/2004 Uso : trb1 Ficheiros Usados : funcionarios.dat, medicos.dat, relaciona.dat Descricao : Gestão de uma pequena base de dados em ficheiros ASCII implementa algumas operações básicas sobre os ficheiros de dados, como a introdução e remoção de dados, listagem e pesquisa ------------------------------------------------------------------------------------- inicializacao da base de dados caso não exista if (! -e funcionarios.dat) then echo "0op;SAM;SAM" > funcionarios.dat if (! -e medicos.dat) then echo "0md;SAM;SAM;SAM" > medicos.dat if (! -e relaciona.dat) then echo "" > relaciona.dat ----------- menu - principal set opt = 0 while ($opt!= 9) clear echo "SAM DataBase - Menu de Operacoes " echo "1 - inserir novo funcionario" echo "2 - inserir novo medico" echo "3 - registar uma consulta (funcionario/medico)" echo "4 - listar todos os funcionarios" echo "5 - listar todos os medicos" echo "6 - pesquisar" echo "7 - remover ficha do funcionario e respectivas consultas" echo "8 - remover ficha do medico e recpectivas consultas" echo "9 - sair" set opt = $< clear switch ($opt) case "1" : echo "1 - Inserir novo Funcionario" echo "Introduza o nome do funcionario:>" set nomef = $< set nomef = `echo "$nomef" tr '[a-z]' '[A-Z]'` Transforma o nome em Maiusculas set ef = `grep "$nomef" funcionarios.dat wc -l` Existe funcionario if ( $ef!= 0 ) then nao processa os outros dados echo "--> FUNCIONARIO JA EXISTE <--" echo "Introduza a morada:>" set moradaf = $< if (-e funcionarios.dat) then obter o ultimo elemento do ficheiro set idf = `tail -1 funcionarios.dat awk -F"op" '{print $1}'` obter o nº @ idf = $idf + 1 + 1 caso exista set idf = 1 1 se não existir Trabalho Prático Página 1 de 9

Fazo a formatacao do id para 000op, estamos a limitar o n. de funcionarios, por isso nao a usamos. para a implementacao desta estrutura de bastaria usar if (idf<10) set idf = `echo "00$idf"` if (idf < 100) then set idf = `echo "0$idf"` este codigo seria tb usado na numeracao dos médicos (próximo case) set reg = `echo "$nomef;$moradaf" tr '[a-z]' '[A-Z]'` criar registo echo "$idf""op;$reg" >> funcionarios.dat completar registo e gravar no ficheiro case "2" : funcionamento semelhante ao da inserção de funcionarios echo "2 - Inserir nome Medico" echo "Introduza o nome do medico :>" set nomem = $< set nomem = `echo "$nomem" tr '[a-z]' '[A-Z]'` obter e verificar se existe o set em = `grep "$nomem" medicos.dat wc -l` funcionario if ($em!= 0) then echo "--> MEDICO JA EXISTE <--" echo "Introduza a especialidade :>" set espm = $< echo "Introduza a clinica :>" set clinica = $< if (-e medicos.dat) then set idm = `tail -1 medicos.dat awk -F"md" '{print $1}' ` @ idm = $idm + 1 set idm = 1 set reg = `echo "$nomem;$espm;$clinica" tr '[a-z]' '[A-Z]'` construir e gravar echo "$idm""md;$reg" >> medicos.dat o registo case "3": echo "3 - Registar uma consulta" echo "Introduza o nome do funcionario :>" set nfunc = $< set nfunc = `echo "$nfunc" tr '[a-z]' '[A-Z]'` set ef = `grep "$nfunc" funcionarios.dat wc -l` if ($ef == 0) then echo "FUNCIONARIO NAO EXISTE!!!" set numf = `grep "$nfunc" funcionarios.dat awk -F";" '{print $1}'` echo "Necessita de uma lista dos codigos dos medicos e sua especialidade? (S/N)" set opt1 = $< if ($opt1 == 'S') then mostra a lista de medicos cat medicos.dat tr ';' '\t\t' substituindo ; por \t\t (2 tab) echo "Introduza o codigo do medico :>" set cmed = $< echo "Introduza a data da consulta :>" set dcon = $< echo "Custo da consulta :>" set cust = $< echo "$numf;$cmed;$dcon;$cust" >> relaciona.dat grava o registo echo "Consulta introduzida..." Trabalho Prático Página 2 de 9

case "4": echo "Id;Nome;Morada" tr ';' '\t\t' mostra o cabeçalho da tabela cat funcionarios.dat tr ';' '\t\t' more lista os dados case "5": echo "Id;Nome;Especialidade;Clinica" tr ';' '\t\t' mostra o cabeçalho cat medicos.dat tr ';' '\t\t' more da tabela e lista os dados case "6" : SUBMENU Pesquisa echo "6 PESQUISA" echo " 1 - Consultas por funcionario e suas despesas" echo " 2 - Consultas por medico e sua facturacao" echo " 3 - Despesas numa dada especialidade" echo " 4 - Consultas efectuadas a partir de uma dada data" set opt1 = $< clear switch ($opt1) case '1' : echo "61 Consultas do funcionario" echo "" echo "Introduza o nome do funcionario :>" set nomef = $< set nomef = `echo "$nomef" tr "[a-z]" "[A-Z]"` obter nome em maius. echo "Consultas" set ef = `grep "$nomef" funcionarios.dat wc -l` verificar se existe if ($ef>0) then sim? set idf = `grep "$nomef" funcionarios.dat cut -f1 -d';'` obter id set cons = `grep "$idf" relaciona.dat` obter todas as consultas set total = 0 foreach x ($cons) para cada consulta set idm = `echo "$x" cut -f2 -d';'` obter id do medico set esp = `grep "$idm" medicos.dat cut -f3 -d';'` obter especial. echo $x sed -e "s/$idm/$esp/" awk -F";" '{printf $3" - "$2" - "$4"\n"}' listar data especialidade - valor @ total = $total + `echo $x awk -F";" '{printf $4}'` calc. total echo "TOTAL de Despesas = $total" mostra total Trabalho Prático Página 3 de 9

case '2' : echo "62 Consultas dos Medicos" echo "Introduza o nome do medico :>" set nomem = $< set nomem = `echo "$nomem" tr "[a-z]" "[A-Z]"` echo "Consultas" set em = `grep "$nomem" medicos.dat wc -l` verifica se existe if ($em>0) then sim? grep "$nomem" medicos.dat cut -f3 -d';' mostra especialidade set idm = `grep "$nomem" medicos.dat cut -f1 -d';'` obter id medico set cons = `grep "$idm" relaciona.dat` obter todas as consultas do med. set total = 0 foreach x ($cons) para cada consulta set idf=`echo "$x" cut -f1 -d';'` obter id func. set nomef=`grep "$idf" funcionarios.dat cut -f2 -d';'` obter nome echo $x sed -e "s/$idf/$nomef/" awk -F";" '{printf $3" - "$1" - "$4"\n"}' listar data doente valor @ total = $total + `echo $x awk -F";" '{printf $4}'` calc. total echo " Ganhos do Medico = $total" apresnta o total case '3' : echo "63 Despesas por Especialidade" echo "Introduza a especialidade :>" set esp = $< set esp = `echo $esp tr "[a-z]" "[A-Z]"` set total = 0 set medicos = `grep $esp medicos.dat` obter todos os medicos com a esp. foreach x ($medicos) set idm = `echo $x cut -f1 -d';'` obter id do medico set cons = `grep "$idm" relaciona.dat` obter todas as consultas foreach y ($cons) para cada consulta echo $y awk -F";" '{printf $3" - "$4"\n"}' mostrar data - valor @ total = $total + `echo $y awk -F";" '{printf $4}'` calc total echo " Total de despesas = $total" mostra total Trabalho Prático Página 4 de 9

case '4' : echo "64 Consultas a partir de dada Data " echo "Introduza a data (ddmmyyyy) :>" set data = $< set c = `cat relaciona.dat` obter todas as consultas set cons = " " foreach k ($c) set d = `echo "$k" cut -f3 -d';'` obter data da consulta if ($d >= $data) then se >= então guarda set cons = `echo "$cons $k"` set total = 0 foreach x ($cons) para consulta armazenada set idf = `echo $x cut -f1 -d';'` obtem o id de funcionario set idm = `echo $x cut -f2 -d';'` obtem o id de medico set nm = `grep $idm medicos.dat cut -f2 -d';'` obter o nome do med. set esp = `grep $idm medicos.dat cut -f3 -d';'` obter a especiali. set nf = `grep $idf funcionarios.dat cut -f2 -d';'` obter o nome fun. mostrar data doente medico : especialidade - valor echo $x sed -e "s/$idf/$nf/" sed -e "s/$idm/$nm;$esp/" awk -F";" '{printf $4" - "$1" - "$2" : "$3" - "$5"\n"}' @ total = $total + `echo $x awk -F";" '{printf $4}'` calc total echo " Total = $total " mostra total sw case "7" : echo "7 Remover Ficha de Funcionario" echo "Introduza o nome do Funcionario :>" set nf = $< set nf = `echo $nf tr "[a-z]" "[A-Z]"` set em = `grep $nf funcionarios.dat wc -l` verifica se existe if ($em > 0) then set idf = `grep $nf funcionarios.dat cut -f1 -d';'` obtem id de func. remove todas as linha do ficheiro que contenham o id grep -v $idf funcionarios.dat > funcionarios.dat no ficheiro funcionarios grep -v $idf relaciona.dat > relaciona.dat no ficheiro relaciona case "8" : mesma funcionalidade do remover funcionario echo "8 Remover Ficha de Medico" echo "Introduza o nome do medico :>" set nm = $< set nm = `echo $nm tr "[a-z]" "[A-Z]"` set em = `grep $nm medicos.dat wc -l` if ($em > 0) then set idm = `grep $nm medicos.dat cut -f1 -d';'` grep -v $idm medicos.dat > medicos.dat grep -v $idm relaciona.dat > relaciona.dat Trabalho Prático Página 5 de 9

case "9": : echo "Opcao invalida!" sw if ($opt!= 9) then echo "(prima <ENTER> para continuar)" set xpto = $< FIM DO SCRIPT Trabalho Prático Página 6 de 9

!/bin/csh ------------------------------------------------------------------------------------- Autor : Jose Nicolau (5205) & Tiago Pina (5223) IPT - EI/SO 2003/2004 Uso : trb2 <path> path - directorio onde iniciar a pesquisa de links ftp e http Output : allink.html Descricao : procura recursivamente numa determinada arvore de directorias ficheiros.*htm* e constroi uma tabela HTML com os links contidos nesses ficheiros (links http e ftp) ------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------- Remove os ficheiros temporarios if (-e files.txt) then rm files.txt if (-e links.txt) then rm links.txt if (-e allink.html) then rm allink.html echo "Script CSH trb2" echo "jose nicolau (5205) e tiago pina (5223)" echo "----------------------------------------" ----- Verificar se existe o parametro <path> se sim processa if ($1 == '') then echo "USO trb2 <path>" echo "Ex../trb2 /home/www/public_html" ----- Obter o parametro <path> e construir a path de pesquisa set mypath = "$1/*.htm*" echo "a processar: $mypath" ----- Criar um ficheiro temporario com todos nome dos ficheiros.htm* ls -lra $mypath awk '{print $9}' >> files.txt ----- Criar o header do ficheiro HTML set dt = `cat files.txt` echo "<html><head><title>cshell Script - allink</title></head><body>" >> allink.html echo "<table border=1 bordercolor=000000 width=100%><tr><td><center>" >> allink.html echo "<b>`date +%d-%m-%y` ---- allink.html ---- " >> allink.html echo "`date +%X`</b></center></td></tr>" >> allink.html set cnt = 1 ----- Por cada ficheiro existente (.htm*) construir uma linha de header foreach x ($dt) echo "<tr><td><center>$cnt -- $x</center></td></tr><tr><td>" >> allink.html Trabalho Prático Página 7 de 9

----- Obter todas as linhas com links e substituir todos os caracteres ' >< por (NewLine) \n grep http:// $x tr '">< ' '\n' tr "'<>" "\n" > links.txt grep ftp:// $x tr '"<> ' '\n' tr "'<> " "\n" >> links.txt ----- Criar uma lista dos links existentes no ficheiro.htm* set lnk = `grep http:// links.txt` ----- Construir as linhas da tabela com base nos link existentes foreach l ($lnk) echo "<a href='$l'>$l<a><br>" >> allink.html set lnk = `grep ftp:// links.txt` foreach l ($lnk) echo "<a href='$l'>$l<a><br>" >> allink.html echo "</td></tr>" >> allink.html @ cnt = $cnt + 1 ----- Terminar o corpo do ficheiro HTML echo "</table></body></html>" >> allink.html echo "processo concluido..." FIM DO SCRIPT Trabalho Prático Página 8 de 9