Buscar

Aula05 Argumentos OperacoesAritmeticas

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 23 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 23 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 23 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

Programação	
  para	
  Servidores	
  
Aula	
  05	
  
2014.1	
  
Sumário	
  
•  Argumentos;	
  
•  Expansão	
  aritméAca:	
  let,	
  (( ))	
  e	
  $(( ));	
  
•  Operadores	
  matemáAcos;	
  
•  Exercícios.	
  
2	
  
Exercício	
  
1.  Escrever	
  um	
  script	
  que	
  solicita	
  ao	
  usuário	
  que	
  entre	
  com	
  um	
  
nome	
  e	
  um	
  telefone.	
  Após	
  a	
  leitura	
  dos	
  dados	
  (read),	
  
acrescenta-­‐os	
  ao	
  final	
  do	
  arquivo	
  agenda.txt.	
  Caso	
  o	
  
arquivo	
  não	
  exista,	
  ele	
  deve	
  ser	
  criado.	
  Ao	
  final,	
  deve-­‐se	
  
imprimir	
  na	
  tela	
  (igual	
  ao	
  modelo	
  abaixo)	
  os	
  dados	
  de	
  toda	
  a	
  
agenda	
  atualizada	
  e	
  em	
  ordem	
  alfabéAca	
  (use	
  os	
  comandos	
  
sort	
  e	
  cat).	
  
Nome: Beatriz 
Telefone: 1111-4545 
------------------------- 
 Agenda 
------------------------- 
Almir 3434-3232 
Beatriz 1111-4545 
Zuleica 2121-2121 
------------------------- 
3	
  
Resposta	
  –	
  exercício	
  01	
  
read -p -n{5} "Nome: " nome 
read -p "Telefone: " tel 
echo -e "$nome $tel" >> agenda.txt 
echo -e "\n-------------------------“ 
echo -e " Agenda“ 
echo -e "-------------------------“ 
sort agenda.txt | cat 
echo -e "-------------------------\n" 
4	
  
Exercício	
  
2.  Escrever	
  um	
  script	
  que	
  imprima	
  na	
  tela	
  o	
  número	
  de	
  
telefones	
  armazenados	
  na	
  agenda	
  do	
  exercício	
  anterior	
  
(comando	
  wc -l	
  para	
  contar).	
  Seu	
  script	
  deverá	
  processar	
  
o	
  arquivo	
  agenda.txt	
  e	
  gerar	
  uma	
  saída	
  de	
  acordo	
  com	
  o	
  
modelo	
  abaixo:	
  
Agenda tem 3 telefones. 
5	
  
Resposta	
  –	
  exercício	
  02	
  
echo -e "Agenda tem `wc -l < agenda.txt` telefones." 
6	
  
Exercício	
  
3.  Escrever	
  um	
  script	
  que	
  solicita	
  ao	
  usuário	
  que	
  digite	
  o	
  seu	
  
primeiro	
  nome	
  e	
  em	
  seguida	
  exibe	
  uma	
  saudação	
  de	
  boa	
  
noite	
  usando	
  o	
  nome	
  do	
  usuário	
  e	
  informando	
  qual	
  a	
  data	
  e	
  
hora	
  atuais,	
  como	
  no	
  exemplo	
  abaixo	
  (as	
  ASPAS	
  são	
  
obrigatórias	
  e	
  a	
  data	
  deve	
  estar	
  com	
  letras	
  MAIÚSCULAS):	
  
Olá Alexandre, boa noite! 
Data e hora atuais: "QUA, 13 DE FEV DE 2013 17:35:19". 
7	
  
Resposta	
  –	
  exercício	
  03	
  
read -p "Nome: " nome 
echo "Olá $nome, boa noite!" 
echo "Data e hora atuais: \"`date | tr 'a-z' 'A-Z'`\"." 
8	
  
Argumentos	
  
•  Argumentos	
  são	
  passados	
  para	
  os	
  comandos	
  ou	
  
scripts	
  a	
  parAr	
  da	
  linha	
  de	
  comando;	
  
•  Exemplos	
  de	
  comandos	
  e	
  seus	
  argumentos:	
  
cd $HOME 
mkdir bin 
mv nuser bin 
tr 'E' 'e' < entrada.txt > saida.txt 
9	
  
Argumentos	
  
•  Argumentos	
  são	
  também	
  chamados	
  de	
  parâmetros	
  
posicionais,	
  pois	
  são	
  acessados	
  com	
  base	
  na	
  sua	
  
posição,	
  através	
  das	
  variáveis	
  especiais	
  $0,	
  $1,	
  $2,	
  
$3,	
  ...	
  ,	
  etc;	
  
– Onde	
  $0	
  é	
  o	
  nome	
  do	
  próprio	
  script,	
  $1	
  é	
  o	
  primeiro	
  
argumento,	
  $2	
  o	
  segundo	
  argumento,	
  e	
  assim	
  por	
  diante;	
  
•  Do	
  décimo	
  em	
  diante,	
  os	
  números	
  devem	
  ser	
  
colocados	
  entre	
  chaves.	
  Por	
  exemplo,	
  ${10},	
  
${11},	
  ${12},	
  ...	
  
10	
  
Argumentos	
  
•  Exemplo	
  de	
  acesso	
  aos	
  argumentos	
  do	
  script:	
  
– Modificando	
  a	
  solução	
  do	
  exercício	
  01	
  da	
  Aula	
  03	
  (agenda	
  
telefônica)	
  para	
  receber	
  o	
  nome	
  e	
  telefone	
  por	
  
parâmetros:	
  
echo -e "$1 $2" >> agenda.txt 
echo -e "\n-------------------------" 
echo -e " Agenda" 
echo -e "-------------------------" 
sort agenda.txt | cat 
echo -e "-------------------------\n" 
11	
  
Expansão	
  aritméAca	
  
•  Veja	
  o	
  que	
  ocorre	
  se	
  fizermos	
  as	
  seguintes	
  
atribuições:	
  
n=0 
echo "n = $n" 
n=$n+200 
echo "n = $n" 
12	
  
Expansão	
  aritméAca	
  
•  Veja	
  o	
  que	
  ocorre	
  se	
  fizermos	
  as	
  seguintes	
  
atribuições:	
  
n=0 
echo "n = $n" 
n=$n+200 
echo "n = $n" 
13	
  
$ ./t.sh 
n = 0 
n = 0+200 
Expansão	
  aritméAca	
  
•  Para	
  realizarmos	
  operações	
  matemáAcas	
  com	
  
números	
  INTEIROS	
  em	
  shell	
  script,	
  precisamos	
  
uAlizar	
  uma	
  das	
  formas	
  abaixo:	
  
– Comando	
  let:	
  
 let n=100+100 
 echo "n = $n" 
 # let n=100+ 100 INVÁLIDO!! 
 let "n = n + 200" # Com aspas, podemos usar espaços 
 echo "n = $n" 
– Para	
  manipulação	
  de	
  números	
  reais,	
  precisamos	
  uAlizar	
  
uma	
  outra	
  linguagem	
  específica	
  para	
  cálculo	
  (bc).	
  
14	
  
Expansão	
  aritméAca	
  
•  Para	
  realizarmos	
  operações	
  matemáAcas	
  com	
  
números	
  INTEIROS	
  em	
  shell	
  script,	
  precisamos	
  
uAlizar	
  uma	
  das	
  formas	
  abaixo:	
  
– Comando	
  let:	
  
 let n=100+100 
 echo "n = $n" 
 # let n=100+ 100 INVÁLIDO!! 
 let "n = n + 200" # Com aspas, podemos usar espaços 
 echo "n = $n" 
– Para	
  manipulação	
  de	
  números	
  reais,	
  precisamos	
  uAlizar	
  
uma	
  outra	
  linguagem	
  específica	
  para	
  cálculo	
  (bc).	
  
15	
  
$ ./t.sh 
n = 200 
n = 400 
Expansão	
  aritméAca	
  
– Operadores	
  (( ))	
  e	
  $(( )):	
  
 n=0 
 ((n=n+1)) 
 echo "n = $n" 
 ((n = n + 10)) 
 echo "n = $n" 
 n=$((n + 20)) 
 echo "n = $n" 
 # n=(( n + 10 )) INCORRETO!! 
 # $(( n = n + 10 )) INCORRETO!! 
 echo "n = $((n = n + 10))" # correto 
 echo "n = ((n = n + 10))" # correto, mas... 
16	
  
Expansão	
  aritméAca	
  
– Operadores	
  (( ))	
  e	
  $(( )):	
  
 n=0 
 ((n=n+1)) 
 echo "n = $n" 
 ((n = n + 10)) 
 echo "n = $n" 
 n=$((n + 20)) 
 echo "n = $n" 
 # n=(( n + 10 )) INCORRETO!! 
 # $(( n = n + 10 )) INCORRETO!! 
 echo "n = $((n = n + 10))" # correto 
 echo "n = ((n = n + 10))" # correto, mas... 
17	
  
$ ./t.sh 
n = 1 
n = 11 
n = 31 
n = 41 
n = ((n = n + 10)) 
Expansão	
  aritméAca	
  
•  Resumindo:	
  
– Operador	
  (( )):	
  disponibiliza	
  a	
  avaliação	
  de	
  expressões	
  
aritméAcas;	
  
– Operador	
  $(( )):	
  difere	
  do	
  anterior,	
  pois	
  faz	
  a	
  
subsAtuição	
  de	
  toda	
  a	
  expressão	
  pelo	
  seu	
  valor	
  final;	
  
18	
  
Operadores	
  matemáAcos	
  
+	
  	
   -­‐	
  soma;	
  
-	
  	
   -­‐	
  subtração;	
  
*	
  	
   -­‐	
  mulAplicação;	
  
/	
  	
   -­‐	
  divisão;	
  
**	
  	
   -­‐	
  exponenciação;	
  
%	
  	
   -­‐	
  módulo	
  (resto	
  da	
  divisão	
  inteira);	
  
+=	
  	
   -­‐	
  incremento	
  por	
  uma	
  constante;	
  
-=	
  	
   -­‐	
  decremento	
  por	
  uma	
  constante;	
  
*=	
  	
   -­‐	
  mulAplica	
  por	
  uma	
  constante;	
  
/=	
  	
   -­‐	
  divide	
  por	
  uma	
  constante;	
  
%=	
  	
   -­‐	
  módulo	
  por	
  uma	
  constante;	
  
19	
  
Exercícios	
  
1.  Escrever	
  um	
  script	
  para	
  ler	
  3	
  valores,	
  calcular	
  e	
  
imprimir	
  a	
  soma	
  desses	
  valores;	
  
2.  Escrever	
  um	
  script	
  para	
  ler	
  os	
  valores	
  (inteiros)	
  do	
  
comprimento,	
  da	
  largurae	
  da	
  altura	
  de	
  uma	
  caixa,	
  
calcular	
  e	
  imprimir	
  o	
  seu	
  volume;	
  
3.  Escrever	
  um	
  script	
  que	
  receba	
  por	
  parâmetro	
  dois	
  
valores	
  e	
  exibir	
  na	
  tela	
  o	
  resultado	
  das	
  seguintes	
  
operações	
  entre	
  eles:	
  +,	
  -,	
  *,	
  /,	
  **	
  e	
  %.	
  	
  	
  	
  	
  	
  	
  	
  	
  
Modelo:	
  	
   2 + 3 = 5 
	
   2 - 3 = -1 
 2 * 3 = 6 ...	
  
20	
  
Exercícios	
  
4.  Escrever	
  um	
  script	
  que	
  receba	
  por	
  parâmetro	
  3	
  
valores	
  inteiros,	
  representando	
  a	
  idade	
  de	
  uma	
  
pessoa	
  em	
  anos,	
  meses	
  e	
  dias.	
  Calcular	
  e	
  imprimir	
  a	
  
idade	
  desta	
  pessoa	
  em	
  dias;	
  
5.  Escrever	
  um	
  script	
  que	
  receba	
  por	
  parâmetro	
  o	
  
tempo	
  de	
  duração	
  de	
  um	
  experimento	
  expresso	
  em	
  
segundos	
  e	
  imprima	
  na	
  tela	
  esse	
  mesmo	
  tempo	
  em	
  
horas,	
  minutos	
  e	
  segundos.	
  
21	
  
Estudo	
  dirigido	
  
•  Leitura	
  do	
  capítulo	
  13	
  do	
  livro:	
  
“Advanced	
  Bash-­‐ScripAng	
  Guide”	
  
•  Leitura	
  do	
  capítulo	
  6.1.2	
  e	
  6.1.3	
  do	
  livro:	
  
“Classic	
  Shell	
  ScripAng”	
  
22	
  
Próxima	
  aula...	
  
•  Testes	
  ou	
  condicionais;	
  
•  Operadores	
  de	
  comparação	
  (relacionais);	
  
•  Operadores	
  booleanos.	
  
23

Outros materiais