Buscar

Unidade III – Programação Script

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

23/09/2014
1
CCT0042
Programação para Servidores
Programação Script
Adaptado do Prof. Paulo Estevam
Prof. Márcio Rodrigo
Semestre Letivo: 2014.2
pág.
�
Toda linha de comentário deverá ser precedida do
caractere #.
Exemplos:
#Meu primeiro script
#Data: 11/11/11
#Este script deverá ser executado apenas hoje
3
23/09/2014
2
pág.
Comentário da “primeira linha”
� As linha iniciadas com o caractere # serão “ignoradas”
pelo interpretador shell, exceção à primeira linha
iniciada com #!, a qual indicará o interpretador a ser
usado. A combinação “#!” também é conhecida como
“shebang” ou “hashbang” (contração de sharp bang).
Exemplos:
◦ #!/bin/sh
◦ #!/bin/bash
◦ #!/usr/bin/perl
◦ #!/usr/bin/tcl
◦ #!/bin/sed –f
◦ #!/usr/awk -f
4
pág.
Observações:
�
�
�
Lembre-se que um script é executado em um outro shell (subshell)
com interpretador especificado na primeira linha.
Quando um script é executado, o seu arquivo é passado como
parâmetro para o interpretador.
Um comando que aceite um arquivo como parâmetro, poderá ser
um interpretador.
Exemplo de script tendo o comando “cat” como interpretador:
5
23/09/2014
3
pág.
�
�
�
Um script shell é um arquivo texto, padrão ASCII.
Para criar um script, usar um editor de texto ou um
editor de script da sua preferência (nano, mcedit, gedit).
Exemplos:
ou
ou
Nomodo gráfico: gedit
Sintaxe: gedit ou gedit nome_arquivo
gedit nome_arquivo &
Nomodo texto: nano
Sintaxe: nano ou nano nome_arquivo
nano nome_arquivo &
(e acessar os processos com jobs, fg número_job, bg número_job)
6
pág.
� Nano
7
Omenu de teclas de atalho fica localizado no rodapé.
No atalho, ^ = tecla control, ou seja:
CTRL-X - Sai do editor. Irá perguntar se quer salvar
seu trabalho (Y/N).
CTRL-R - Ler e adiciona o texto de um arquivo no
texto atual.
CTRL-C - Mostra a posição atual do cursor.
CTRL-K - 'Recorta' o texto.
CTRL-U - 'Cola' o texto.
CTRL-U - 'Cola' o texto.
CTRL S - Salva o arquivo e continua
editando.
CTRL-T - verifica a ortografia do seu texto.
CTRL-W - Faz uma busca no texto.
CTRL-A- Leva o cursor para o início da linha.
CTRL-E - Leva o cursor para o fim da linha.
CTRL-G - Exibe a ajuda do Nano.
23/09/2014
4
pág.
Passos:
1.
2.
3.
4.
5.
6.
7.
Criar o arquivo;
Digitar os comandos (algoritmo do script);
Salvar o arquivo (e fechá-lo*);
Testar o script (bash nome_arquivo);
Conceder permissão de execução (chmod);
Disponibilizar no PATH (jogar na pasta bin do usuário).
Executar o script de qualquer lugar.
*Caso, por exemplo, não tenha aberto de forma assíncrona com o gedit (gedit nome_arquivo &).
8
pág.
1.
Criar o arquivo;
Exemplos:
gedit ou
gedit script1
2. Digitar os comandos (algoritmo do script);
9
23/09/2014
5
pág.
3. Salvar o arquivo (e fechá-lo*);
Salvá-lo com o nome “script1”.
Observações:
1) Normalmente os scripts possuem extensão “.sh”.
2) Não salvar o arquivo com omesmo nome de uma palavra-chave ou
comando do Bash.
4. Testar o script (bash nome_arquivo);
Usar o interpretador para testar.
Exemplo: bash script1
10
pág.
5. Conceder permissão de execução (chmod);
Usar o comando chmod com a opção de execução
(podendo ser também no modo octal).
Exemplos:
11
23/09/2014
6
pág.
Testando execução sem explicitar o interpretador
Observações:
1) A sintaxe “./nome_arquivo” executa um programa ou script no
diretório corrente.
2) A sintaxe com ponto-espaço, “. /nome_arquivo”, executa um
programa ou script tendo como referência de busca o diretório raiz.
Neste caso o ponto não referencia o diretório atual, mas sim, o raiz.
12
pág.
6. Disponibilizar no PATH (jogar na pasta bin do usuário).
Observação:
A maioria das distribuições Linux incentiva a prática em
que cada usuário tenha um diretório específico para os
seus programas de uso pessoal. Este diretório é chamado
de “bin” e é um subdiretório do seu diretório home.
Verifique se ele existe, se não tiver, crie-o e mova o
arquivo para ele:
13
23/09/2014
7
pág.
7. Executar o script de qualquer lugar.
Observação:
A execução, de qualquer lugar, tornou-se possível graças
ao script de inicialização “.bash_profile” que previamente
exporta a variável de ambiente “PATH” com diretório
pessoal “bin” do usuário.
14
pág.
Definição de variável
� Para que os scripts manipulem os dados, estes devem
ser armazenados em variáveis, assim sendo, variáveis
pode ser definida como sendo:
� Local da “memória”, referenciado por um nome
idenficador, onde são armazenados valores a
seremmanipulados pelo script.
15
23/09/2014
8
pág.
Regras para nomes identificadores de variáveis
1.
2.
3.
4.
O primeiro caracter deve ser uma letra ou sublinhado
(“_”).
Os demais caracteres podem pertencer ao seguinte
conjunto:
{_,a,b,c,...,z, A,B,C,...,Z,0,1,2,...,9}, e sem limite de
quantidade.
Não possuir espaços em branco nem conter caracteres
de pontuação ou especiais, tais como $, #,&,*,!,., etc.
Não usar palavras reservadas do Bash.
16
pág.
�
Os nomes devem ser significativos, explicitando o seu
conteúdo ou finalidade.
Exemplos:
◦ DIR_BACKUP
◦ _diretorio_backup
◦ Data_proc_01
◦ arqlog777
17
23/09/2014
9
Declaração
� Não existe declaração formal de variável em um scritp
shell. Uma variável pode ser criada e imediatamente
usada em qualquer lugar do script.
�
�
�
Para criar uma variável, digite o nome da mesma seguido
imediatamente por um sinal de igual ("=").
Não são permitidos espaços em ambos os lados do sinal de
igual.
Após o sinal de igual, atribuir a informação que você deseja
armazenar.
Exemplos:
_NomeScript=Teste
finalidade_do_script=Nenhuma
prioridade=10
AUTOR=“Deckster dos Anjos”
pág. 18
pág.
�
�
�
�
O operador de atribuição de valor a uma variável é o
símbolo “=” (igual).
O conteúdo de uma variável é sempre armazenado
como sendo uma string (literal).
Não há limite para a quantidade de caracteres que a
variável pode armazenar.
Para limpar o valor de uma variável faz-se uma
atribuição nula (vazia).
Exemplo:
nome_dir=
19
23/09/2014
10
pág.
Destruição de uma variável
� Para se destruir uma variável deve-se utilizar o
comando unset.
Exemplos:
unset _NomeScript
unset finalidade_do_script
unset prioridade
20
pág.
�
�
�
Para se referenciar, ou seja, para se obter (extrair) o
valor de uma variável, utiliza-se o nome da variável
precedido do caractere $. ($nome_variável)
Este mecanismo é conhecido como substituição ou
expansão de uma variável.
Sempre que o shell vê uma palavra que começa com um
“$”, ele tenta descobrir o que foi atribuído à variável e
efetuar a substituição (troca).
Exemplo:
mensagem=“Olá mundo.” criação de variável
echo $mensagem impressão na tela do conteúdo
complemento=Voilá! criação de variável
saida=$mensagem atribuição de valor de uma variável à outra
echo $saida $complemento impressão na tela do conteúdo
21
23/09/2014
11
pág.
Exemplo:
mensagem=“Olá mundo.”
echo $mensagem
complemento=Voilá!
criação de variável
impressão na tela do conteúdo
criação de variável
saida2=“$mensagem $complemento” concatenação
echo $saida2 impressão na tela do conteúdo
22
pág.
�
�
�
�
�
�
As “variáveis de ambiente” armazenam valores que são
utilizados para fins configuração do ambiente do usuário.
As variáveis de ambiente são consideradas como sendo
variáveis globais para o shell, isto é, disponíveis para os
scripts executados naquele shell.
O shell e os programas são executados em um ambiente
configurado por estas variáveis.
Estes valores ficam disponíveis a partir do instante em que o
usuário faz o login.
As “variáveis deambiente” são geralmente consideradas
constantes, uma vez que raramente são alteradas.
Por convenção, variáveis de ambiente são escritas com os
nomes em letras maiúsculas.
23
23/09/2014
12
pág.
�
�
As variáveis de ambiente são atualizadas através dos
scripts de inicialização, os quais são executados toda
vez que o usuário faz o login.
O ambiente configurado do usuário contém variáveis
que guardam valores tais como path, nome do usuário,
seu diretório home, local de e-mails, diretório atual,
etc.
24
pág.
Comandos para configurar ou criar variáveis de ambiente
� export
Cria e/ou modifica o valor de uma variável de ambiente.
� readonly
Torna a variável de ambiente somente leitura. 
Exemplo:
25
23/09/2014
13
pág.
Comandos para visualizar variáveis de ambiente
� env (ou printenv ou export):
Exibe apenas as variáveis que foram exportadas pelos
scritps de inicialização ou diretamente (manualmente) no
shell pelo usuário.
� set
Mostra todas as variáveis de ambiente do usuário,
inclusive as que foram criadas diretamente (manualmente)
no shell, mas não foram exportadas.
26
pág.
Exemplos:
�
�
�
�
�
�
�
�
�
$HOME : Mostra o diretório home do usuário.
$PWD : mostra o diretório atual de trabalho do usuário.
$OLDPWD : Mostra o diretório anterior de trabalho do usuário.
$HISTFILE : Mostra o nome do arquivo que armazena as linhas de comando
digitadas pelo usuário (no shell bash o arquivo padrão é o .bash_history).
$HISTSIZE : Mostra o número de linhas de comando digitadas pelo usuário que
são memorizadas pelo sistema.
$LOGNAME : Mostra o nome de acesso do usuário.
$USER : mostra o nome do usuário atual.
$UID : mostra o número de identificação do usuário.
$MAIL : Mostra o diretório que contém as mensagens de correio eletrônicas
recebidas pelo usuário.
27
23/09/2014
14
pág.
�
�
�
�
�
�
�
$SHELL : mostra o nome do shell atualmente em uso.
$SHLVL : mostra o número de shells atualmente em execução na
conta do usuário.
$OSTYPE : Mostra o sistema operacional em uso.
$TERM : mostra o tipo de terminal em uso.
$PPID : mostra o número de identificação do processo que
inicializou o shell do usuário. Existe um diretório em /proc com
este número e que contém informações sobre o processo em
questão.
$PS1 : mostra a definição do prompt da linha de comando.
$PS2 : mostra a definição do prompt secundário da linha de
comando.
O caractere $ se refere à substituição da variável, assim sendo, por exemplo, em $HOME, HOME
é o nome da variável.
28
pág.
Arquivos de inicialização do ambiente do usuário
�
1.
2.
3.
�
1.
O bash, quando é carregado através de um shell que
requer login (nome e senha), procura os arquivos de
scripts abaixo, em seqüência, os comandos neles
contidos, caso existam:
/etc/profile
~/.bash_profile
~/.profile
Caso o bash seja carregado através de um shell que não
requer login (janela de terminal), o seguinte arquivo é
executado:
~/.bashrc
29
23/09/2014
15
pág.
Sobre os arquivos
�
�
�
/etc/profile� Contém as variáveis de ambiente do sistema que são
disponibilizadas para todos os usuários do sistema no momento do
login. Somente o usuário root tem permissão para alterar este
arquivo. Ele é lido antes do arquivo de configuração pessoal de
cada usuário (.profile(root) e .bash_profile).
~/.bash_profile � Este arquivo reside no diretório pessoal de cada
usuário. É executado por shells que usam autenticação (nome e
senha). O .bash_profile contém comandos que são executados para
o usuário no momento do login no sistema, após o /etc/profile.
Note que este é um arquivo oculto pois tem um "." no inicio do
nome. Ele aponta para o arquivo ./bashrc.
~/.bashrc � Contém funções e aliases de comandos definidos pelo
usuário. Possui as mesmas características do .bash_profile mas é
executado por shells que não requerem autenticação (janela de
terminal). Ele aponta para o arquivo /etc/bashrc.
30
pág.
Arquivo executado no processo de logout
1. ~/.bash_logout � contém os comandos a serem
executados pelo sistema no fechamento da sessão
pelo usuário.
O diretório dos arquivos modelos (templates)
1. /etc/skel � Este diretório contém os modelos de
arquivos “.bash_profile” e “.bashrc” que serão copiados
para o diretório pessoal dos usuários no momento que
for criada uma conta no sistema. Desta forma você não
precisará configurar estes arquivos separadamente
para cada usuário.
O arquivo de histórico dos comandos
1. ~/.bash_history � contém a lista dos 1000 últimos
comandos digitados pelo usuário.
31

Outros materiais