Buscar

Unidade III – Parte 2

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 26 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 26 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 26 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 - 02
Adaptado do Prof. Paulo Estevam
Prof. Márcio Rodrigo
Semestre Letivo: 2014.1
pág.
$(comando)
Os caracteres “$( )” intrui ao shell, substitui-los pelo
resultado do(s) comando(s) entre parêntesis.
Sintaxe: $(comandos) ou `comandos`
Exemplo:
echo $(date +“%x %r”)
� A sintaxe alternativa para “$(comando)” é `comando`
A expressão `comando`, que usa o caracter crase “`”, é
uma forma mais antiga, oriunda do Bourne shell original
(sh).
3
23/09/2014
2
pág.
Observações:
1.
2.
3.
O Bash shell suporta totalmente scripts escritos para
sh.
A substituição de comandos também é conhecida
como “expansão”.
É possível atribuir os resultados de comandos para
uma variável.
4
pág.
Exemplo:
5
23/09/2014
3
pág.
Resultado:
6
pág.
�
Também é possível aninhar/concatenar substituições de
variáveis e de comandos, colocando-os juntos entre
aspas.
Exemplo:
SAÍDA
7
23/09/2014
4
pág.
Existem dois comandos para saída de dados:
�
�
echo
printf
E um para leitura de dados:
� read
8
pág.
echo
� Usado para exibir mensagens e/ou conteúdo de
variáveis.
� Sintaxe:
echo [ cadeia_caracteres $variavel $(comandos) ]
Exemplos:
echo Olá mundo
echo “Olá mundo”
echo ‘Olá mundo’
echo Diretório do usuário: $HOME
echo “Diretório do usuário: $HOME”
9
echo ‘Diretório do usuário: $HOME’ 
Neste último caso, o caractere especial 
apóstrofo protege a interpretação do caractere 
$ como sendo de expansão de variável ou de 
comando 
23/09/2014
5
pág.
echo
Observações:
1.
2.
A opção “-n” omite uma nova linha de prompt. Porém
não é padrão POSIX.
A opção “-e” habilita a interpretação de sequências de
escape (\), como, por exemplo, de mudança de linha.
10
pág.
Exemplo:
11
23/09/2014
6
pág.
Resultado:
12
CARACTERES SIGNIFICADO
\n Mudadelinha.
\c Omite uma nova linha de prompt.
\t Tabulação horizontal.
\v Tabulação vertical.
\\ Exibe o caracter \.
\b Backspace.
pág.
echo
� Sequências de escape
Obs.: Usar com a opção “-e” para habilitar a interpretação
da barra invertida.
Ex.: echo -e “Exemplo mudando \n de linha”
13
23/09/2014
7
pág.
printf
� Usado para exibir mensagens e/ou conteúdo de
variáveis. Teve sua origem na linguagem C.
�
�
Usa-se com caracteres especificadores de formato e
com caracteres de escape.
Sintaxe:
printf [ “literal_e_caracteres_espec_formato_e_escape” argumentos ]
Exemplo:
printf “Olá mundo”
printf ‘Olá mundo’
printf “Diretório do usuário: %s \n” $HOME
Neste último, para quebra de linha, usou- se “\ n” (caracteres de escape )
14
FORMATO SIGNIFICADO
%c Mostra um caracter.
%s Mostra uma string (literal).
%dou%i Mostra um número inteiro.
%f Mostra um número real.
%x.yf Mostra um número real
Com x casas inteira se y
Casas depois da vígula.
%% Mostraocaracter%.
pág.
printf
� Especificadores de formato
Observação.: Pesquisar sobre o uso de flags em printf.
(cap. 7, págs. 160-161)
15
23/09/2014
8
pág.
Exemplo:
16
pág.
Resultado:
17
23/09/2014
9
pág.
Exemplo:
18
pág.
Resultado:
19
23/09/2014
10
CARACTERES SIGNIFICADO
\n Muda de linha.
\c Omite uma nova linha de prompt.
\t Tabulação horizontal.
\v Tabulação vertical.
\\ Exibe o caracter\.
\b Backspace.
pág.
printf
� Sequências de escape
Obs.: A opção \c é equivalente à sequência de escape “-n”
no comando echo.
Ex.: printf “Digite o nome do arquivo: ” \c ; read ARQUIVO
20
pág.
Exemplo:
21
23/09/2014
11
pág.
Resultado:
22
pág.
Exemplo:
23
23/09/2014
12
pág.
Resultado:
24
pág.
Exemplo:
25
23/09/2014
13
pág.
Resultado:
26
pág.
Exemplo:
27
23/09/2014
14
pág.
Resultado:
28
pág.
Exemplo:
29
23/09/2014
15
pág.
Resultado:
30
pág.
read
� O comando read é um comando de interação do script
com o usuário, ou seja, ele realiza a leitura de dados a
partir da entrada padrão (teclado).
� Se não for especificada uma variável, o valor digitado
pelo usuário é armazenado na variável padrão REPLY.
Para se extrair o valor digitado pelo usuário, usar o
caractere de substituição ($).
Exemplo:
echo –n “Digite o nome do arquivo: ”;read
echo O nome do arquivo informando: $REPLY
31
23/09/2014
16
pág.
Exemplo:
32
pág.
Resultado:
33
23/09/2014
17
pág.
Exemplo:
34
pág.
Resultado:
35
23/09/2014
18
pág.
ATENÇÃO!
Ambas as formas agrupam o texto como uma única string.
PORÉM:
� Aspas duplas (“...”)
O shell processa interpreta caracteres de escape, substituição
de variáveis, expansão de comandos, etc.
Exemplo:
x=“Tudo bem?”
echo “Ola mundo! $x”
� Apóstrofos ('...')
Força ao shell tratar literalmente tudo que estiver entre o par
de apóstrofos, ou seja, não substitui variáveis, nem expande
comandos, etc.
Exemplo:
x='Tudo bem? '
echo 'Ola mundo $x'
36
pág.
exit
� O comando exit força a saída (término) de um script.
Exemplo:
37
23/09/2014
19
pág.
$?
A variável especial ? guarda o valor de retorno do “status
de saída” da execução do último comando ou do último
script executado.
Observações:
o Todo comando ou script realizado com sucesso retorna o valor
zero (0).
o Em um script shell podemos modificar o valor do estado de
saída através do comando de término exit. A expressão “exit
nº” retorna o valor do número como estado de saída do script.
Exemplo:
exit 9 � finalizará com estado de saída 9
38
VARIÁVEL SIGNIFICADO
$? Valor de retorno do último comando
Ou do último script executado.
$$ Númerodo PID (ProcessID)
$- Opções dada ao shell na invocação
De um comando.
pág.
� Obs.: Na página de manual do bash (“man bash”), na
seção “Shell Variables”, você visualizará outras variáveis
especiais.
39
23/09/2014
20
OPERADOR OPERAÇÃO EXEMPLO OBSERVAÇÃO
+ Adição X+Y Soma o conteúdo deX e de Y
- Subtração X-Y Subtrai Ydo conteú do de X
* Multiplicação X*Y
Multiplicao conteú do de X pelo
De Y
/ Divisão X/Y
Obtém o quociente da divisão
De X por Y
%
Restodeuma
divisão
X%Y
Obtém o resto da divisão de X
Por Y
** Potenciação X**Y
Obtém a potência de X elevado
aY
pág.
�
São semelhantes aos da Linguagem C.
40
OPERADOR OPERAÇÃO EXEMPLO OBSERVAÇÃO
++ Incremento
X++ou
++X
Aumenta oconteú do de Xem
Um aunidade
-- Decremento
X--ou
--X
DiminuioconteúdodeXem
umaunidade
+=,-=,*=,/=
Operadores de
Atribuição aritméticos
X+=Y,
X-=Y,
X*=Y,
X/=Y
Soma o conteúdo anterior de X
comY e armazena em X.O
Mesmo queX=X+Y
pág.
�
(continuação)
41
23/09/2014
21
pág.
�
�
$((expressão_aritmética))
Os carateres $(( )) funcionam como delimitadores de
expressões aritméticas, permitindo a expansão dos
cálculos realizados dentro do duplo parêntesis.
Exemplos:
echo $((2+3))
n1=10
n2=5
echo $(( (n1*n2) + (n1-n2) ))
echo $(( ($n1*$n2) + ($n1-$n2) ))
Obs.: Note que não foi preciso expandir as variáveis
acima.
42
pág.
let
� Para avaliar e realizar uma expressão aritmética pode-
se utilizar também o comando let.
Exemplos:
x=1
let x=x*2+3
echo “x=$x”
let x--
echo “x=$x”
Obs.: Pesquise sobre o comando expr, porém o mesmo
está obsoleto.
43
23/09/2014
22
pág.
�
�
O uso de $(( )) ou do comandos let e expr só permitem
operações do tipo inteiro.
Para efetuar cálculos numéricos com floats (números de
ponto flutuante) existem 2 alternativas:
“bc”� Opção 1: Usar o programa
(arbitary precision calculator language)
Sintaxe: echo“expressão” | bc -l ou
echo “scale=nºcasas_decimais;expressão” | bc
y=2.2
x=2.7
echo “$x/$y” | bc –l (-l=com todas as casa decimais)
1.22727272727272727272 (ou com a função scale=nºcasas;)
echo “scale=4;$x/$y” | bc
1.2272
44
pág.
�
Guardando o valor numa variável:
z=$(echo “scale=4; 5/2” | bc)
echo $z
2.50
� Guardando o valor num arquivo, em seguida lendo para
uma variável:
echo “scale=2; 5/2” | bc > resultado.txt
read < resultado.txt
echo $REPLY
2.50
45
23/09/2014
23
pág.
�
Potenciação (^)
echo “scale=4; 2^3” | bc
8
� Raiz quadrada ( sqrt( ) )
echo “scale=4; sqrt(2)” | bc
1.4142
46
pág.
�
Opção 2: Usar o programa “awk”
x=2.2
y=3.3
echo $x $y | awk ‘{print $1+$2}’
47
23/09/2014
24
pág. 48
pág. 49
23/09/2014
25
Binário Octal Significado
Leitura
(r)
Escrita
(w)
Execução
(x)
0 0 0 0 Sempermissãoalguma(acessonegado)
0 0 1 1 Permissãodeexecução
0 1 0 2 Permissãodegravação
0 1 1 3 Permissãodegravaçãoeexecução
1 0 0 4 Permissãodeleitura
1 0 1 5 Permissãodeleituraeexecução
1 1 0 6 Permissãodeleituraegravação
1 1 1 7 Controletotal(somadetodasas
permissões)
pág. 50
pág. 51
23/09/2014
26
pág. 52

Outros materiais