SlideShare uma empresa Scribd logo
Fundamento de 
Programação Aplicada a 
Redes 
Aula 4 – Comandos básicos shell script 
Professor: Paulo Cesar 
E-mail: pccbranco@gmail.com
Comandos Básicos 
Detalhes sobre alguns comandos 
Comando Função Opções úteis 
cat Mostrar arquivo -n -s 
cut Extrai campo -d -f -c 
date Mostra data -d 
find Encontra arquivos -name -iname -type f 
grep Encontra texto -i -v -r -w -x 
rev Inverte texto 
sort Ordena texto -n -f -r 
seq Conta números -s -f 
tr Transforma texto -d -s A-Z a-z 
uniq Remove arquivos duplicados -i -d -u 
wc Conta letras -c -l -w 
read
Shell Script 
Recebendo entrada de dados 
O comando “read” faz com que variaveis possam 
receber entradas do usuário. 
Quando o script encontra um comando “read”, ele 
para sua execução e aguarda que o usuário informe os 
dados e tecle enter, para concluir a operação. 
Ex.: 
#!/bin/bash 
read nome 
Echo “Meu nome é $nome”
Aspas simples, duplas 
e crase 
Há muita diferença entre eles. Proteção com aspas (quoting) é a forma utilizada 
para informar ao shell como interpretar os dados passados. 
Aspas Simples ( '…..') 
Aspas simples forçam o shell a tratar literalmente tudo o que estiver entre o 
par de aspas. Não é possível encaixar aspas simples dentro de uma string 
protegida por aspas simples, pois nem a barra invertida () é especial dentro de 
aspas simples. 
Ex: 
var = 'Olá, eu sou $USER' 
O Conteúdo de var é: Olá, eu sou $USER – A variável $USER não foi 
processado. Tudo que se encontra dentro das aspas simples é entendido 
literalmente.
Aspas simples, duplas 
e crase 
Aspas duplas (“......”) 
Aspas duplas agrupam o texto como uma única string, porém 
o shell processa caracteres de escape, variáveis, substituição 
de comandos, etc. 
Ex.: 
var=“Olá, eu sou $USER” 
Agora var contém Olá, eu sou root – A variavel $USER 
agora vai devidamente processada e seu valor passado para 
string.
Aspas simples, duplas 
e crase 
Crase (`....`) 
A crase passa a saída do comando entre a crase para a 
string. 
Ex: 
var=”Eu agora estou em: `pwd`” 
O Conteúdo de var ficou: Eu estou agora estou em: 
/home/aluno
O comando “expr” 
Comandos para scripts interativos 
O comando expr trabalha com expressões matemáticas 
simples e somente números inteiros. Permite, também, 
manipulação de strings, mas com recursos limitados. 
Exemplos de operações matemáticas com expr podem ser vistos 
abaixo: 
$ expr 3 + 4 
7 $ expr 5 - 2 
3 $ expr 10 / 5 
2 $ expr 2 * 3 
expr: erro de sintaxe 
$ expr 2 * 3 
6 
Exemplo: 
#!/bin/bash 
echo “Entre com um número:” 
read num1 
echo “Entre com outro número:” 
read num2 
echo “O resultado da soma foi: “ 
expr $num1 + $num2
Comando “test” 
O comando test consegue fazer vários tipos de 
testes em números, textos e arquivos. Ele 
possui várias opções para indicar que tipo de 
teste será feito, segue alguns: 
$ test expressão # Formato comum. 
[ expressão ] # Formato recente. 
[ s1 == s2 ] # Retorna verdadeiro se a string s1 for igual a 
string s2 
[ s1 != s2 ] # Retorna verdadeiro se a string s1 for diferente 
da string s2.
Comando “test” 
Utilizado entre variáveis 
Opção Descrição 
-gt Número é maior que 
-ge Número é maior e igual 
-lt Número é menor que 
-le Número é menor e igual 
-eq Número é igual 
= String é igual 
!= String é diferente 
-n String não é nula 
-z String é nula
Comando “test” 
Utilizado em arquivos 
Opção Descrição 
-e Arquivo existe 
-d É um diretório 
-f É um arquivo normal 
-r O arquivo tem permissão de leitura. 
-s O tamanho do arquivo é maior que zero. 
-w O arquivo tem permissão de escrita.
Exemplo - Script 
#!/bin/bash 
Echo “vou buscar os dados do sistema. Posso continuar? 
[sn]” 
read resposta 
test “$resposta” = “n” && exit 
echo “data e horario:” 
date 
echo 
echo “uso do disco:” 
df 
echo “usuários conectados:” 
w
Estrutura de Controle 
O construtor “if/then” avalia uma expressão lógica para tomar 
uma decisão. Em shell, se a saída retorna verdadeiro (significa 
sucesso). Em caso afirmativo, executa uma ou mais comandos. 
Existe um comando específico, denominado “[ ]” (caractere 
especial colchete). Ele considera seus argumentos como 
expressões de comparação ou testes em arquivos e retorna um 
status correspondente ao resultado da comparação ( 0 para 
verdadeiro e 1 para falso). 
O construtor “if/then” pode testar a saída de qualquer comando, 
não se limitando apenas a testes entre colchetes.
Estrutura de Controle 
Sintaxe
Exemplo – if/then 
#!/bin/bash 
echo "Compara dois numeros" 
echo "Escreva o primeiro numero:" 
read n1 
echo "Escreva o segundo numero:" 
read n2 
if [ $n1 == $n2 ] 
then 
echo “Os números são iguais" 
else 
echo “Os números são diferentes" 
f
Exemplo – if/then 
#!/bin/bash 
echo "Digite o nome de uma pasta" 
read nome1 
if test -d $nome1 
then 
cd $nome1 
touch arquivo1.txt 
else 
mkdir $nome1 
cd $nome1 
touch arquivo1.txt 
f
Estrutura de Controle 
A estrutura case permite selecionar uma entre várias opções de 
ação, baseando-se num valor de uma variável. 
Deve ser usada no lugar da declaração if/then quando esta tiver 
um grande número de condições. 
Essa estrutura pode ser usada para executar declarações que 
dependem de um valor isolado ou de uma faixa de valores. Se 
nenhum valor for encontrado, há a opção de executar o valor 
padrão “*”. 
A variável definida logo após a instrução case tem que ter alguma 
das opções em seguida. Se nenhuma opção for escolhida, a opção 
padrão será executada. 
O próximo slide mostra um exemplo de uso do case.
Exemplo - Case 
#!/bin/bash 
echo “Qual sua resposta?” 
read opcao 
case $opcao in 
sim ) echo "Você concordou!" ;; 
nao ) echo "Que pena!" ;; 
* ) echo "Nem sim, nem não";; 
esac 
Deve-se observar que as instruções terminam com um duplo 
ponto-e-vírgula “;;”. Se não for assim, a instrução seguinte será 
executada junto. Este duplo ponto-e-vírgula pode ser colocado 
depois da instrução ou na linha seguinte. Para encerrar a 
estrutura ”case” usa-se ”esac”, que é case escrito ao contrário.
Exemplo - Case 
#!/bin/bash 
echo "Digite o primeiro numero:" 
read n1 
echo "Digite o segundo numero:" 
read n2 
echo "Escolha uma operação?" 
read opcao 
case $opcao in 
soma) echo "A soma dos numeros é `expr $n1 + $n2`" ;; 
sub) echo "A subtração dos numeros é `expr $n1 - $n2`" ;; 
div) echo "A divisão dos numeros é `expr $n1 / $n2`" ;; 
mult) echo "A multiplicação dos numeros é `expr $n1 * $n2`" ;; 
*) echo " Nenhuma operação foi realizada" ;; 
esac

Mais conteúdo relacionado

PDF
Shell scripts
PPT
Shell Script
PDF
Lpi+102
PDF
Curso De Shell Aula 3
PDF
Shell Script Linux
PDF
Shell script
PDF
Programação em Shell Script
PDF
Shell script
Shell scripts
Shell Script
Lpi+102
Curso De Shell Aula 3
Shell Script Linux
Shell script
Programação em Shell Script
Shell script

Mais procurados (20)

PDF
Curso de Shell Script 05/11
PDF
Curso de ShellScript - Lm07 shellscript7
PPT
PDF
Pascal apostila
PPT
Aula4
PDF
Shell Script v0
KEY
Por que voce deveria documentar seu codigo?
PDF
013 programando em python - arquivos
PPT
Variáveis
PDF
Curso de Shell Script 10/11
PDF
Comandos linux
PDF
Cap1 exercicios comandos linux
PDF
Javafx Introdução
PDF
Scatole Nere
PDF
A Classe StringBuilder em Java
PDF
Curso De Shell Aula 6
PDF
Oficina shell
PDF
Canivete shell
PDF
PHP fora da Web
PDF
Perl Moderno, dia4
Curso de Shell Script 05/11
Curso de ShellScript - Lm07 shellscript7
Pascal apostila
Aula4
Shell Script v0
Por que voce deveria documentar seu codigo?
013 programando em python - arquivos
Variáveis
Curso de Shell Script 10/11
Comandos linux
Cap1 exercicios comandos linux
Javafx Introdução
Scatole Nere
A Classe StringBuilder em Java
Curso De Shell Aula 6
Oficina shell
Canivete shell
PHP fora da Web
Perl Moderno, dia4
Anúncio

Destaque (20)

PPTX
Creio na igreja catolica
PDF
Projeto Lideres Teens
PDF
Catastrofes fim do-mundo-dez2012
PDF
Actividades en familia 7
PPT
A evolução das mídias sociais
PPT
PDF
Abanos de alumnos portfolio 2011
PDF
Desarrollo de habilidades directivas, angel ortiz 0280
PPTX
Joy final
PPT
Tema_15AUX
PPS
Quanto me amei_de_verdade
DOCX
São paulo população das cidades - 2010
PPSX
ASSOCIAÇÃO VIDA CATMO
PDF
Liderazgo integral, angel ortiz 0268
PPS
No resistencia j2 2
PDF
Primaria
PPTX
Si yo tuviera un millon de dolares
DOC
Lan amento horizontal
PDF
AprendizaXe Cooperativo Fernando Trujillo
Creio na igreja catolica
Projeto Lideres Teens
Catastrofes fim do-mundo-dez2012
Actividades en familia 7
A evolução das mídias sociais
Abanos de alumnos portfolio 2011
Desarrollo de habilidades directivas, angel ortiz 0280
Joy final
Tema_15AUX
Quanto me amei_de_verdade
São paulo população das cidades - 2010
ASSOCIAÇÃO VIDA CATMO
Liderazgo integral, angel ortiz 0268
No resistencia j2 2
Primaria
Si yo tuviera un millon de dolares
Lan amento horizontal
AprendizaXe Cooperativo Fernando Trujillo
Anúncio

Semelhante a Fpar aula5 (20)

PDF
Curso Gratuito de Shell Script
ODP
Introducao ao Shell Script
PDF
Oficina de shell script
PDF
Curso shell
PDF
Shell Script
PPS
Shell script
PDF
Linux shell
PDF
Shell Script - Controle de fluxo
PDF
Shell script
PPTX
Shell script
PDF
Curso de ShellScript - Lm10 shellscript10
PDF
Introdução ao Shell Script (versão estendida)
PDF
Introdução ao shell script no linux
PDF
Minicurso Shell Script
PDF
shell bash Fpar aula6
PDF
Curso de shell
PDF
Curso de shell
PDF
Canivete shell
PDF
Curso de ShellScript - Lm04 shellscript3
PDF
Curso de ShellScript - Lm09 shellscript9
Curso Gratuito de Shell Script
Introducao ao Shell Script
Oficina de shell script
Curso shell
Shell Script
Shell script
Linux shell
Shell Script - Controle de fluxo
Shell script
Shell script
Curso de ShellScript - Lm10 shellscript10
Introdução ao Shell Script (versão estendida)
Introdução ao shell script no linux
Minicurso Shell Script
shell bash Fpar aula6
Curso de shell
Curso de shell
Canivete shell
Curso de ShellScript - Lm04 shellscript3
Curso de ShellScript - Lm09 shellscript9

Mais de Geomar Matias Lima (10)

DOCX
Dupla 8 doc
PDF
Agr introducao
PDF
PDF
DOCX
Segurança em sistemas distribuídos
PDF
TABELA BRASILEIRÃO 2014 SERIE B
PDF
Tabela serieb2014 realçdo
PDF
Tabela serieb2014
DOCX
Descrição do curso mva eventos
PDF
Apostila de karate_shotokan
Dupla 8 doc
Agr introducao
Segurança em sistemas distribuídos
TABELA BRASILEIRÃO 2014 SERIE B
Tabela serieb2014 realçdo
Tabela serieb2014
Descrição do curso mva eventos
Apostila de karate_shotokan

Fpar aula5

  • 1. Fundamento de Programação Aplicada a Redes Aula 4 – Comandos básicos shell script Professor: Paulo Cesar E-mail: pccbranco@gmail.com
  • 2. Comandos Básicos Detalhes sobre alguns comandos Comando Função Opções úteis cat Mostrar arquivo -n -s cut Extrai campo -d -f -c date Mostra data -d find Encontra arquivos -name -iname -type f grep Encontra texto -i -v -r -w -x rev Inverte texto sort Ordena texto -n -f -r seq Conta números -s -f tr Transforma texto -d -s A-Z a-z uniq Remove arquivos duplicados -i -d -u wc Conta letras -c -l -w read
  • 3. Shell Script Recebendo entrada de dados O comando “read” faz com que variaveis possam receber entradas do usuário. Quando o script encontra um comando “read”, ele para sua execução e aguarda que o usuário informe os dados e tecle enter, para concluir a operação. Ex.: #!/bin/bash read nome Echo “Meu nome é $nome”
  • 4. Aspas simples, duplas e crase Há muita diferença entre eles. Proteção com aspas (quoting) é a forma utilizada para informar ao shell como interpretar os dados passados. Aspas Simples ( '…..') Aspas simples forçam o shell a tratar literalmente tudo o que estiver entre o par de aspas. Não é possível encaixar aspas simples dentro de uma string protegida por aspas simples, pois nem a barra invertida () é especial dentro de aspas simples. Ex: var = 'Olá, eu sou $USER' O Conteúdo de var é: Olá, eu sou $USER – A variável $USER não foi processado. Tudo que se encontra dentro das aspas simples é entendido literalmente.
  • 5. Aspas simples, duplas e crase Aspas duplas (“......”) Aspas duplas agrupam o texto como uma única string, porém o shell processa caracteres de escape, variáveis, substituição de comandos, etc. Ex.: var=“Olá, eu sou $USER” Agora var contém Olá, eu sou root – A variavel $USER agora vai devidamente processada e seu valor passado para string.
  • 6. Aspas simples, duplas e crase Crase (`....`) A crase passa a saída do comando entre a crase para a string. Ex: var=”Eu agora estou em: `pwd`” O Conteúdo de var ficou: Eu estou agora estou em: /home/aluno
  • 7. O comando “expr” Comandos para scripts interativos O comando expr trabalha com expressões matemáticas simples e somente números inteiros. Permite, também, manipulação de strings, mas com recursos limitados. Exemplos de operações matemáticas com expr podem ser vistos abaixo: $ expr 3 + 4 7 $ expr 5 - 2 3 $ expr 10 / 5 2 $ expr 2 * 3 expr: erro de sintaxe $ expr 2 * 3 6 Exemplo: #!/bin/bash echo “Entre com um número:” read num1 echo “Entre com outro número:” read num2 echo “O resultado da soma foi: “ expr $num1 + $num2
  • 8. Comando “test” O comando test consegue fazer vários tipos de testes em números, textos e arquivos. Ele possui várias opções para indicar que tipo de teste será feito, segue alguns: $ test expressão # Formato comum. [ expressão ] # Formato recente. [ s1 == s2 ] # Retorna verdadeiro se a string s1 for igual a string s2 [ s1 != s2 ] # Retorna verdadeiro se a string s1 for diferente da string s2.
  • 9. Comando “test” Utilizado entre variáveis Opção Descrição -gt Número é maior que -ge Número é maior e igual -lt Número é menor que -le Número é menor e igual -eq Número é igual = String é igual != String é diferente -n String não é nula -z String é nula
  • 10. Comando “test” Utilizado em arquivos Opção Descrição -e Arquivo existe -d É um diretório -f É um arquivo normal -r O arquivo tem permissão de leitura. -s O tamanho do arquivo é maior que zero. -w O arquivo tem permissão de escrita.
  • 11. Exemplo - Script #!/bin/bash Echo “vou buscar os dados do sistema. Posso continuar? [sn]” read resposta test “$resposta” = “n” && exit echo “data e horario:” date echo echo “uso do disco:” df echo “usuários conectados:” w
  • 12. Estrutura de Controle O construtor “if/then” avalia uma expressão lógica para tomar uma decisão. Em shell, se a saída retorna verdadeiro (significa sucesso). Em caso afirmativo, executa uma ou mais comandos. Existe um comando específico, denominado “[ ]” (caractere especial colchete). Ele considera seus argumentos como expressões de comparação ou testes em arquivos e retorna um status correspondente ao resultado da comparação ( 0 para verdadeiro e 1 para falso). O construtor “if/then” pode testar a saída de qualquer comando, não se limitando apenas a testes entre colchetes.
  • 14. Exemplo – if/then #!/bin/bash echo "Compara dois numeros" echo "Escreva o primeiro numero:" read n1 echo "Escreva o segundo numero:" read n2 if [ $n1 == $n2 ] then echo “Os números são iguais" else echo “Os números são diferentes" f
  • 15. Exemplo – if/then #!/bin/bash echo "Digite o nome de uma pasta" read nome1 if test -d $nome1 then cd $nome1 touch arquivo1.txt else mkdir $nome1 cd $nome1 touch arquivo1.txt f
  • 16. Estrutura de Controle A estrutura case permite selecionar uma entre várias opções de ação, baseando-se num valor de uma variável. Deve ser usada no lugar da declaração if/then quando esta tiver um grande número de condições. Essa estrutura pode ser usada para executar declarações que dependem de um valor isolado ou de uma faixa de valores. Se nenhum valor for encontrado, há a opção de executar o valor padrão “*”. A variável definida logo após a instrução case tem que ter alguma das opções em seguida. Se nenhuma opção for escolhida, a opção padrão será executada. O próximo slide mostra um exemplo de uso do case.
  • 17. Exemplo - Case #!/bin/bash echo “Qual sua resposta?” read opcao case $opcao in sim ) echo "Você concordou!" ;; nao ) echo "Que pena!" ;; * ) echo "Nem sim, nem não";; esac Deve-se observar que as instruções terminam com um duplo ponto-e-vírgula “;;”. Se não for assim, a instrução seguinte será executada junto. Este duplo ponto-e-vírgula pode ser colocado depois da instrução ou na linha seguinte. Para encerrar a estrutura ”case” usa-se ”esac”, que é case escrito ao contrário.
  • 18. Exemplo - Case #!/bin/bash echo "Digite o primeiro numero:" read n1 echo "Digite o segundo numero:" read n2 echo "Escolha uma operação?" read opcao case $opcao in soma) echo "A soma dos numeros é `expr $n1 + $n2`" ;; sub) echo "A subtração dos numeros é `expr $n1 - $n2`" ;; div) echo "A divisão dos numeros é `expr $n1 / $n2`" ;; mult) echo "A multiplicação dos numeros é `expr $n1 * $n2`" ;; *) echo " Nenhuma operação foi realizada" ;; esac