SlideShare uma empresa Scribd logo
Introdução ao Shell Script
 Introdução
 O que é o Shell do Linux ?
 O que é Shell Script e porquê utilizá-lo?
 Programando em Shell
 Conceitos básicos.
 Como escrever ?
 Variáveis
 Aritmética
 Comandos
 Caracteres ”Especiais”
 Arquivos
 ”Conectando” comandos
 Filtros
 Tomada de Decisão
 Laços
 Construção de uma aplicação simples.
O que é o Shell do Linux ?
 É um programa ou um ambiente criado para interação do
usuário com o sistema.
 Shell é uma linguagem interpretada que executa comandos
provenientes de arquivos ou digitados pelo usuário.
 Não é parte do kernel, mas o utiliza para executar programas.
 Existem vários tipos de Shell.
 Para saber os que seu sistema possui digite o seguinte
comando no terminal:
cat /etc/shells
 Para saber qual Shell está executando no momento digite:
echo $SHELL
O que é Shell Script e porquê utilizá-lo?
 O que é ?
 ”É uma série de comandos escritos em um
arquivo de texto.”
 Porquê utilizá-lo ?
 Criar seus próprios comandos.
 Automatizar tarefas do dia-a-dia.
 Automatizar tarefas de administração do sistema.
 Outros.
Conceitos Básicos
Como escrever ?
 Use o editor de texto de sua preferência.
 Depois de terminado o script, é necessário
configurar as permissões seguindo a seguinte
sintaxe:
chmod permissão nome-do-script
Exemplo: chmod +x seu-script
 Para executá-lo podemos usar diversas sintaxes
como:
bash seu-script
sh seu-script
./seu-script
Conceitos Básicos
Variáveis
 Do sistema: Criadas pelo sistema e são definidas
em letra maiúscula.
Exemplos:
$USERNAME - nome do usuário
$HOME – caminho do diretório 'home'
 Definidas pelo usuário: são definidas pela sintaxe:
nome_da_variavel = valor
 Devem iniciar com caracteres alfanuméricos ou '_' seguido
de um ou mais caracteres alfanuméricos.
 Não são permitidos espaços antes ou depois do '='
 Não é permitido o uso de caracteres especiais nos nomes.
Conceitos Básicos
Variáveis
 Regras para nomeação:
1) O nome deve começar com ”_”+caracteres ou caracteres.
HOME var _var
2) Não colocar espaços após o sinal de igual ao fazer uma atribuição.
var = 0 var= 0 var =0 ERRO!
3) São case-sensitive.
4) É possível definir variáveis nulas(NULL).
5) Não use caracteres especiais ao nomeá-las, exceto ”_”.
Conceitos Básicos
Variáveis
 Para acessar uma variável é usada a seguinte
sintaxe:
$nome_da_variavel
 Exemplo:
# Escrevendo uma variável na tela
clear #para limpar a tela
numero=10
string="PESL"
echo "numero = $numero"
echo "string = $string"
Conceitos Básicos
Aritmética
Sintaxe:
`variavel operador1 operador_matematico operador2`
` - crase
Operadores:
+, -, /, *, %
 Exemplos:
echo `7+3` #deve aparecer 10 na tela
echo `7-3` #deve aparecer 4 na tela
echo `7*3` #deve aparecer 21 na tela
Conceitos Básicos
Comandos
 echo – mostra valores ou textos na tela.
Sintaxe: echo [opcao] [string,variável...]
Opções:
-e (habilita os comandos abaixo)
b – espaço
n – nova linha
t – tab
 OBS:
` ` - para executar comandos
' ' - o que estiver entre elas não muda
” ” - o que estiver entre elas é tratado como
caracter, exceto  e $
Conceitos Básicos
Comandos
 Status de um script
 Para saber o que ocorreu quando o script terminou
é necessário saber o seu status. Para isto usamos
o comando ”$?”
echo $? #colocado no fim do script dará o status do mesmo
 Se a saída for ”0”, tudo correu como planejado.
Caso contrário, algum erro ocorreu.
OBS:
Para utilizar mais de um comando de uma só vez,
basta encadeá-los utilizando”;'
Exemplo: comando1;comando2
Conceitos Básicos
Comandos
 read – lê a entrada do teclado
Sintaxe: read var1, var2, var3
Exemplo:
# Script que lê um nome e escreve na tela
clear
echo ”Digite seu nome:”
read nome
echo ”Olá $nome!”
Conceitos Básicos
Caracteres ”Especiais”
 São caracteres ”chave” que facilitam algumas tarefas.
Teste estes comandos no terminal.
Caractere O que faz ? Exemplo
* Retorna coincientes.
ls * - mostra todos os arquivos
ls arquivo* - mostra tudo que começar com
”arquivo”
ls *.java - mostra tudo que tiver a extensão
”.java”
ls a*.c - mostra tudo que tive ”a”+qualquer
string no seu nome
? Retorna coincidentes
ls ? - mostra tudo cujo nome tiver
somente um caractere.
ls arquivo? - mostra tudo cujo nome
come;ca com ”arquivo” e tiver 8
caracteres
[...]
Retorna tudo que coinciir
com o conteúdo entre as
chaves.
ls [x,y,z]* - mostra tudo que começar
com ”x”, ”y” ou ”z”
Conceitos Básicos
 Símbolo de redirecionamento ”>”
 Comando > arquivo
 Exemplo:
$ ls > meuArquivo
Se ”meuArquivo” existir, será preenchido (sobrescrito)
com o resultado do comando, caso contrário, um
arquivo com este nome será criado e preenchido.
 Símbolo de redirecionamento ”>>”
 Comando > arquivo
 Exemplo:
$ ls >> meuArquivo
Se ”meuArquivo” existir, a saída do comando será
adicionada ao fim do arquivo, caso contrário, um
arquivo com este nome será criado e preenchido.
Arquivos
Gravando dados
Conceitos Básicos
 Símbolo de redirecionamento ”<”
 Comando < arquivo
 Exemplo:
$ echo < meuArquivo
A entrada do comando será o conteúdo do arquivo.
 Exemplo:
clear #limpa a tela
echo ”Digite seu nome:”
read nome #captura o que foi digitado
echo ”$nome!” > saida #grava o que foi digitado no arquivo "saida"
date >> saida #grava a data no fim do arquivo "saida"
clear #limpa a tela
cat < saida #imprime na tela o conteudo de "saida"
Arquivos
Lendo dados
Conceitos Básicos
 O que é isso ?
É quando um comando usa o outro como entrada ou saída.
 Exemplos:
$ ls -l | wc -l
A saída do comando ”ls” será informada como parâmetro
para o comando ”wc”, que imprimirá na tela o número
de arquivos neste diretório.
$ ls | sort
A saída do comando ”ls” será informada como parâmetro
para o comando ”sort”, que imprimirá o nome dos
arquivos contidos neste diretório em ordem alfabética.
”Conectando” Comandos
Conceitos Básicos
Exemplos:
 Use o comando ”ls > out.txt” para criar um arquivo com o a saida do
comando ”ls”.
 Teste os comandos abaixo:
$ tail -3 < out.txt > 3ultimas.txt
Gera um arquivo com as 3 últimas linhas contidas
no arquivo ”out.txt”
$ head -n5 < out.txt > 5primeiras.txt
Gera um arquivo com as 5 primeras linhas do
arquivo ”out.txt”
$ head -n10 < out.txt | tail -n5 > linhas_5-10.txt
Gera um arquivo com as linhas 6 a 10 de ”out.txt”
Filtros
Conceitos Básicos
 IF
Sintaxe:
Comparações de variáveis
Tomada de Decisão
Símbolo Em SHELL Símbolo Em SHELL
== -eq != -ne
> gt < -lt
>= ge <= -lt
if [ <condição> ]
then
<comandos>
elif [ <condição> ]
<comandos>
else
<comandos>
fi
if [ <condição> ]
then
<comandos>
else
<comandos>
fi
if [ <condição> ]
then
<comandos>
fi
Conceitos Básicos
 Comparações de Strings
 Testes sobre arquivos e diretórios
Tomada de Decisão
Em SHELL Significado
String1 = String2 As strings são iguais.
String1 != String2 As strings são diferentes.
String Checa se a string é válida (não nula).
-n String Checa se a string é válida e existe.
-z String Checa se a string nula e não existe.
Em SHELL Significado
-s arquivo Arquivo não vazio.
-f arquivo Arquivo existe ou arquivo existe e não é um diretório.
-w arquivo Arquivo pode ser editado.
-r arquivo Arquivo é somente leitura.
-x arquivo Arquivo é executável.
-d diretorio Diretório existe e não é um arquivo.
Conceitos Básicos
 FOR
Sintaxe:
 WHILE
Sintaxe:
Laços
for ( ( <expressão3>; <expressão2>; <expressão3> ) )
do
<comandos>
done
while ( <condição> )
do
<comandos>
done
Construindo uma Aplicação Simples
 Objetivo:
 Encontrar o arquivo com o nome designado na pasta atual e mostrá-lo na tela.

Mais conteúdo relacionado

PPT
Aula4
PPTX
Aula 5 PHP - Criação de sites II
PPTX
Arrays PHP - Criação de sites II
PPTX
Introdução ao PHP - Criação de sites II
PDF
Canivete shell
PPTX
PHP Básico - Parte 3
PDF
Fpar aula5
PDF
013 programando em python - arquivos
Aula4
Aula 5 PHP - Criação de sites II
Arrays PHP - Criação de sites II
Introdução ao PHP - Criação de sites II
Canivete shell
PHP Básico - Parte 3
Fpar aula5
013 programando em python - arquivos

Mais procurados (20)

PDF
007 programando em python - funcoes
PPTX
PPT
PPTX
Ruby (1)
PPT
5.II SACIC - 2010 - Desenvolvimento de Aplicações para TVDigital com NCLUA
PDF
LabMM4 (T22 - 12/13) - segurança
KEY
Python 04
TXT
Removendo virus autorun
PPTX
ESTRUTURA DE DADOS (JAVA) AULA 03
PPTX
GSOIII (JAVA) REVISÃO
KEY
Python 05
PDF
PDF
Documentacao automatica
PDF
Java 8 - Afinal onde usamos no dia a dia? GOJava 15 anos!
PDF
Programação Desktop: Revisão Core Java
PDF
Terminal off python
PDF
Java orientação a objetos (variaveis de instancia e metodos)
PDF
10 programando em python - excecoes
PPT
Java Desktop
PDF
Fugindo para as colinas com Python - Julio Biason - Tchelinux Bento Gonçalves...
007 programando em python - funcoes
Ruby (1)
5.II SACIC - 2010 - Desenvolvimento de Aplicações para TVDigital com NCLUA
LabMM4 (T22 - 12/13) - segurança
Python 04
Removendo virus autorun
ESTRUTURA DE DADOS (JAVA) AULA 03
GSOIII (JAVA) REVISÃO
Python 05
Documentacao automatica
Java 8 - Afinal onde usamos no dia a dia? GOJava 15 anos!
Programação Desktop: Revisão Core Java
Terminal off python
Java orientação a objetos (variaveis de instancia e metodos)
10 programando em python - excecoes
Java Desktop
Fugindo para as colinas com Python - Julio Biason - Tchelinux Bento Gonçalves...
Anúncio

Semelhante a Shell Script (20)

PDF
Shell Script v0
PDF
Shell script
PDF
Curso de shell
PDF
Curso de shell
PDF
Shell script do zero aula 1 - basico do basico e primeiros comandos
PPTX
Introduction to linux
PDF
Curso Gratuito de Shell Script
PPS
Shell script
PDF
Curso De Shell Aula 1
PDF
Curso shell
PPTX
Shell script
PDF
Introdução ao shell script no linux
PDF
Linux shell
PDF
Oficina de shell script
PDF
Curso de shell-tutorial avançadoIII .pdf
PDF
Shell script
PPTX
Aula 10 semana
PDF
Shell script
PDF
Lpi+102
PDF
01 apostila-introducao-shell
Shell Script v0
Shell script
Curso de shell
Curso de shell
Shell script do zero aula 1 - basico do basico e primeiros comandos
Introduction to linux
Curso Gratuito de Shell Script
Shell script
Curso De Shell Aula 1
Curso shell
Shell script
Introdução ao shell script no linux
Linux shell
Oficina de shell script
Curso de shell-tutorial avançadoIII .pdf
Shell script
Aula 10 semana
Shell script
Lpi+102
01 apostila-introducao-shell
Anúncio

Mais de John Godoi (15)

PDF
(5) maneiras de motivar a si mesmo
PDF
The Passionate Programmer (Career tips and learnings)
PDF
Spring boot
PDF
O jogo mental do poker
PDF
There is no box
PDF
Gimplabs2
PDF
Gimplabs3
PDF
PDF
Git básico
PDF
Gimplabs1
PDF
Comandos do Linux
PPTX
Intro to java 8
PPTX
Introduction to apache spark
PPTX
Software craftsmanship
PDF
Java e orientação a objetos - aula 01
(5) maneiras de motivar a si mesmo
The Passionate Programmer (Career tips and learnings)
Spring boot
O jogo mental do poker
There is no box
Gimplabs2
Gimplabs3
Git básico
Gimplabs1
Comandos do Linux
Intro to java 8
Introduction to apache spark
Software craftsmanship
Java e orientação a objetos - aula 01

Último (19)

PPTX
Aula 18 - Manipulacao De Arquivos python
PDF
Aula04-Academia Heri- Tecnologia Geral 2025
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
Processos na gestão de transportes, TM100 Col18
PDF
Apple Pippin Uma breve introdução. - David Glotz
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Aula 18 - Manipulacao De Arquivos python
Aula04-Academia Heri- Tecnologia Geral 2025
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Processos na gestão de transportes, TM100 Col18
Apple Pippin Uma breve introdução. - David Glotz
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
COBITxITIL-Entenda as diferença em uso governança TI
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Custos e liquidação no SAP Transportation Management, TM130 Col18
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14

Shell Script

  • 1. Introdução ao Shell Script  Introdução  O que é o Shell do Linux ?  O que é Shell Script e porquê utilizá-lo?  Programando em Shell  Conceitos básicos.  Como escrever ?  Variáveis  Aritmética  Comandos  Caracteres ”Especiais”  Arquivos  ”Conectando” comandos  Filtros  Tomada de Decisão  Laços  Construção de uma aplicação simples.
  • 2. O que é o Shell do Linux ?  É um programa ou um ambiente criado para interação do usuário com o sistema.  Shell é uma linguagem interpretada que executa comandos provenientes de arquivos ou digitados pelo usuário.  Não é parte do kernel, mas o utiliza para executar programas.  Existem vários tipos de Shell.  Para saber os que seu sistema possui digite o seguinte comando no terminal: cat /etc/shells  Para saber qual Shell está executando no momento digite: echo $SHELL
  • 3. O que é Shell Script e porquê utilizá-lo?  O que é ?  ”É uma série de comandos escritos em um arquivo de texto.”  Porquê utilizá-lo ?  Criar seus próprios comandos.  Automatizar tarefas do dia-a-dia.  Automatizar tarefas de administração do sistema.  Outros.
  • 4. Conceitos Básicos Como escrever ?  Use o editor de texto de sua preferência.  Depois de terminado o script, é necessário configurar as permissões seguindo a seguinte sintaxe: chmod permissão nome-do-script Exemplo: chmod +x seu-script  Para executá-lo podemos usar diversas sintaxes como: bash seu-script sh seu-script ./seu-script
  • 5. Conceitos Básicos Variáveis  Do sistema: Criadas pelo sistema e são definidas em letra maiúscula. Exemplos: $USERNAME - nome do usuário $HOME – caminho do diretório 'home'  Definidas pelo usuário: são definidas pela sintaxe: nome_da_variavel = valor  Devem iniciar com caracteres alfanuméricos ou '_' seguido de um ou mais caracteres alfanuméricos.  Não são permitidos espaços antes ou depois do '='  Não é permitido o uso de caracteres especiais nos nomes.
  • 6. Conceitos Básicos Variáveis  Regras para nomeação: 1) O nome deve começar com ”_”+caracteres ou caracteres. HOME var _var 2) Não colocar espaços após o sinal de igual ao fazer uma atribuição. var = 0 var= 0 var =0 ERRO! 3) São case-sensitive. 4) É possível definir variáveis nulas(NULL). 5) Não use caracteres especiais ao nomeá-las, exceto ”_”.
  • 7. Conceitos Básicos Variáveis  Para acessar uma variável é usada a seguinte sintaxe: $nome_da_variavel  Exemplo: # Escrevendo uma variável na tela clear #para limpar a tela numero=10 string="PESL" echo "numero = $numero" echo "string = $string"
  • 8. Conceitos Básicos Aritmética Sintaxe: `variavel operador1 operador_matematico operador2` ` - crase Operadores: +, -, /, *, %  Exemplos: echo `7+3` #deve aparecer 10 na tela echo `7-3` #deve aparecer 4 na tela echo `7*3` #deve aparecer 21 na tela
  • 9. Conceitos Básicos Comandos  echo – mostra valores ou textos na tela. Sintaxe: echo [opcao] [string,variável...] Opções: -e (habilita os comandos abaixo) b – espaço n – nova linha t – tab  OBS: ` ` - para executar comandos ' ' - o que estiver entre elas não muda ” ” - o que estiver entre elas é tratado como caracter, exceto e $
  • 10. Conceitos Básicos Comandos  Status de um script  Para saber o que ocorreu quando o script terminou é necessário saber o seu status. Para isto usamos o comando ”$?” echo $? #colocado no fim do script dará o status do mesmo  Se a saída for ”0”, tudo correu como planejado. Caso contrário, algum erro ocorreu. OBS: Para utilizar mais de um comando de uma só vez, basta encadeá-los utilizando”;' Exemplo: comando1;comando2
  • 11. Conceitos Básicos Comandos  read – lê a entrada do teclado Sintaxe: read var1, var2, var3 Exemplo: # Script que lê um nome e escreve na tela clear echo ”Digite seu nome:” read nome echo ”Olá $nome!”
  • 12. Conceitos Básicos Caracteres ”Especiais”  São caracteres ”chave” que facilitam algumas tarefas. Teste estes comandos no terminal. Caractere O que faz ? Exemplo * Retorna coincientes. ls * - mostra todos os arquivos ls arquivo* - mostra tudo que começar com ”arquivo” ls *.java - mostra tudo que tiver a extensão ”.java” ls a*.c - mostra tudo que tive ”a”+qualquer string no seu nome ? Retorna coincidentes ls ? - mostra tudo cujo nome tiver somente um caractere. ls arquivo? - mostra tudo cujo nome come;ca com ”arquivo” e tiver 8 caracteres [...] Retorna tudo que coinciir com o conteúdo entre as chaves. ls [x,y,z]* - mostra tudo que começar com ”x”, ”y” ou ”z”
  • 13. Conceitos Básicos  Símbolo de redirecionamento ”>”  Comando > arquivo  Exemplo: $ ls > meuArquivo Se ”meuArquivo” existir, será preenchido (sobrescrito) com o resultado do comando, caso contrário, um arquivo com este nome será criado e preenchido.  Símbolo de redirecionamento ”>>”  Comando > arquivo  Exemplo: $ ls >> meuArquivo Se ”meuArquivo” existir, a saída do comando será adicionada ao fim do arquivo, caso contrário, um arquivo com este nome será criado e preenchido. Arquivos Gravando dados
  • 14. Conceitos Básicos  Símbolo de redirecionamento ”<”  Comando < arquivo  Exemplo: $ echo < meuArquivo A entrada do comando será o conteúdo do arquivo.  Exemplo: clear #limpa a tela echo ”Digite seu nome:” read nome #captura o que foi digitado echo ”$nome!” > saida #grava o que foi digitado no arquivo "saida" date >> saida #grava a data no fim do arquivo "saida" clear #limpa a tela cat < saida #imprime na tela o conteudo de "saida" Arquivos Lendo dados
  • 15. Conceitos Básicos  O que é isso ? É quando um comando usa o outro como entrada ou saída.  Exemplos: $ ls -l | wc -l A saída do comando ”ls” será informada como parâmetro para o comando ”wc”, que imprimirá na tela o número de arquivos neste diretório. $ ls | sort A saída do comando ”ls” será informada como parâmetro para o comando ”sort”, que imprimirá o nome dos arquivos contidos neste diretório em ordem alfabética. ”Conectando” Comandos
  • 16. Conceitos Básicos Exemplos:  Use o comando ”ls > out.txt” para criar um arquivo com o a saida do comando ”ls”.  Teste os comandos abaixo: $ tail -3 < out.txt > 3ultimas.txt Gera um arquivo com as 3 últimas linhas contidas no arquivo ”out.txt” $ head -n5 < out.txt > 5primeiras.txt Gera um arquivo com as 5 primeras linhas do arquivo ”out.txt” $ head -n10 < out.txt | tail -n5 > linhas_5-10.txt Gera um arquivo com as linhas 6 a 10 de ”out.txt” Filtros
  • 17. Conceitos Básicos  IF Sintaxe: Comparações de variáveis Tomada de Decisão Símbolo Em SHELL Símbolo Em SHELL == -eq != -ne > gt < -lt >= ge <= -lt if [ <condição> ] then <comandos> elif [ <condição> ] <comandos> else <comandos> fi if [ <condição> ] then <comandos> else <comandos> fi if [ <condição> ] then <comandos> fi
  • 18. Conceitos Básicos  Comparações de Strings  Testes sobre arquivos e diretórios Tomada de Decisão Em SHELL Significado String1 = String2 As strings são iguais. String1 != String2 As strings são diferentes. String Checa se a string é válida (não nula). -n String Checa se a string é válida e existe. -z String Checa se a string nula e não existe. Em SHELL Significado -s arquivo Arquivo não vazio. -f arquivo Arquivo existe ou arquivo existe e não é um diretório. -w arquivo Arquivo pode ser editado. -r arquivo Arquivo é somente leitura. -x arquivo Arquivo é executável. -d diretorio Diretório existe e não é um arquivo.
  • 19. Conceitos Básicos  FOR Sintaxe:  WHILE Sintaxe: Laços for ( ( <expressão3>; <expressão2>; <expressão3> ) ) do <comandos> done while ( <condição> ) do <comandos> done
  • 20. Construindo uma Aplicação Simples  Objetivo:  Encontrar o arquivo com o nome designado na pasta atual e mostrá-lo na tela.