0% acharam este documento útil (0 voto)
4 visualizações10 páginas

Aula Shell Script

A aula introduz o Shell Script, explicando sua definição como um interpretador de comandos e suas características como linguagem interpretada. Os alunos aprendem a criar um script simples, 'Olá, mundo!', e a utilizar palavras reservadas, variáveis e comandos como read para interatividade. O documento também aborda a manipulação de variáveis, tipos de dados, e a leitura de argumentos da linha de comando.

Enviado por

jymmyb
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
4 visualizações10 páginas

Aula Shell Script

A aula introduz o Shell Script, explicando sua definição como um interpretador de comandos e suas características como linguagem interpretada. Os alunos aprendem a criar um script simples, 'Olá, mundo!', e a utilizar palavras reservadas, variáveis e comandos como read para interatividade. O documento também aborda a manipulação de variáveis, tipos de dados, e a leitura de argumentos da linha de comando.

Enviado por

jymmyb
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Faculdade ESUDA

Disciplina: Sistemas Operacionais


Professor: Jymmy Barreto
Turno: Noite
Data: 25/04/2025

Introdução ao Shell Script


📌 Objetivos da Aula
1. Entender o que é Shell e por que é uma linguagem interpretada.
2. Criar o primeiro script Shell ("Olá, mundo!").
3. Conhecer palavras reservadas e variáveis em Shell Script.

1. O que é Shell?

Definição: O Shell é um interpretador de comandos que atua como interface entre o usuário e o
sistema operacional (kernel).
Linguagem Interpretada:
Códigos são executados linha a linha, sem necessidade de compilação.
Vantagens: Rápido desenvolvimento, portabilidade e fácil depuração.
Desvantagem: Menor performance comparado a linguagens compiladas.

2. Primeiro Script Shell: "Olá, mundo!"

Passo a Passo:

1. Crie um arquivo com extensão .sh:

2. nano [Link]

3. Adicione a shebang (#!/bin/bash):

Indica qual interpretador deve executar o script (caminho do Bash).

#!/bin/bash
echo "Olá, mundo!"

4. Salve o arquivo e torne-o executável:


chmod +x [Link]

5. Execute:

./[Link]

Saída:

Olá, mundo!

3. Palavras Reservadas (Keywords)

São palavras que têm significado especial no Shell e não podem ser usadas como nomes de variáveis ou
funções.

Palavra Descrição

if Inicia uma condicional.

then Executa comandos se a condição if for verdadeira.

else Executa comandos se a condição if for falsa.

elif Combina else e if para verificar múltiplas condições.

fi Fecha um bloco if.

case Inicia uma estrutura de seleção múltipla.

esac Fecha um bloco case.

for Inicia um loop de iteração.

while Executa comandos enquanto uma condição for verdadeira.

until Executa comandos até que uma condição seja verdadeira.

do Delimita o início do corpo de um loop (for, while, until).

done Fecha um bloco de loop.

break Sai de um loop antes do término.

continue Pula para a próxima iteração de um loop.

function Define uma função (opcional, pois func() também funciona).

return Retorna um valor de uma função.

local Declara uma variável local a uma função.


Palavra Descrição

exit Termina a execução do script com um status de saída.

select Cria um menu interativo.

in Usado em loops for e case para definir elementos.

🔹 Símbolos Especiais e Metacaracteres

Esses caracteres têm funções especiais em operações de redirecionamento, expansão, substituição, etc.

📌 Redirecionamento e Pipe

Símbolo Descrição

> Redireciona a saída para um arquivo (sobrescreve).

>> Redireciona a saída para um arquivo (concatena).

< Redireciona a entrada de um arquivo.

<< Here-document (entrada até um delimitador).

<<< Here-string (passa uma string como entrada).

\| Pipe (passa a saída de um comando como entrada para outro).

2> Redireciona stderr (erros) para um arquivo.

&> Redireciona stdout e stderr para um arquivo.

📌 Expansão e Substituição

Símbolo Descrição

$ Expande variáveis ($VAR).

${} Expansão mais segura de variáveis (${VAR}).

Substituição de comando (captura a saída de um


$()
comando).

` | Equivalente a $() (mais antigo, substituição de


comando).

$(()) Aritmética (expansão para cálculos).

$VAR Valor da variável VAR.

* Wildcard (corresponde a qualquer caractere).

? Wildcard (corresponde a um único caractere).

Globbing (corresponde a um conjunto de


[]
caracteres).
Símbolo Descrição

{} Expansão de chaves ({1..10}, {a,b,c}).

📌 Controle de Processos

Símbolo Descrição

& Executa um comando em segundo plano.

&& Executa o próximo comando apenas se o anterior for bem-sucedido.

\|\| Executa o próximo comando apenas se o anterior falhar.

; Separa comandos (executa sequencialmente).

! Negação (em testes ou histórico de comandos).

() Agrupa comandos em um subshell.

📌 Outros Símbolos Úteis

Símbolo Descrição

# Comentário (ignora tudo após #).

\ Escape (ignora o significado especial do próximo caractere).

" Aspas duplas (permite expansão de variáveis).

' Aspas simples (protege todos os caracteres).

~ Home directory (~ equivale a /home/usuario).

.. Diretório pai (sobe um nível no sistema de arquivos).

🔹 Exemplos Práticos

✅ Redirecionamento

echo "Olá" > [Link] # Sobrescreve o arquivo


ls -l >> [Link] # Concatena ao arquivo
grep "texto" < [Link] # Lê entrada de um arquivo

✅ Substituição de Comando

DATA=$(date) # Armazena a data em uma variável


echo "Hoje é $DATA"

✅ Expansão de Chaves
echo {1..5} # Saída: 1 2 3 4 5
echo {a,b,c}.txt # Saída: [Link] [Link] [Link]

✅ Condicionais e Loops

if [ -f "[Link]" ]; then
echo "Arquivo existe!"
else
echo "Arquivo não encontrado."
fi

Ótimo! Vamos abordar cada uma das suas perguntas sobre variáveis em Shell Script (especialmente no
Bash):

4. Representação de uma Variável em Shell

Em Shell Script, uma variável é representada por um nome (sem espaços) que armazena um valor.

Declaração: VARIAVEL=valor (sem espaços antes/depois do =).


Acesso: $VARIAVEL ou ${VARIAVEL} (recomendado para evitar ambiguidades).

Exemplo:

NOME="João"
echo $NOME # Saída: João
echo ${NOME} # Saída: João (forma mais segura)

🔹 Tipos de Dados Suportados

O Shell (Bash) trata variáveis como strings por padrão, mas permite manipulação numérica em contextos
específicos. Os "tipos" indiretos são:

Tipo
Descrição Exemplo
Implícito

String Texto (padrão). VAR="texto"

Inteiro Números (para cálculos). NUM=10

Array Lista de valores. ARR=("a" "b" "c")

Array com chaves personalizadas (Bash declare -A DICT=


Associativo
4+). (["chave"]="valor")
Observações:

Não há tipos flutuantes nativos (use bc ou awk para cálculos decimais).


Variáveis são não tipadas (uma mesma variável pode mudar de "tipo").

🔹 Variável Constante (Read-only)

Use readonly ou declare -r para declarar uma variável imutável.

Exemplo:

readonly PI=3.14
declare -r SITE="[Link]"

PI=5.0 # Erro: "PI: readonly variable"

🔹 Variável do Tipo Array

Declaração:

FRUTAS=("Maçã" "Banana" "Laranja") # Array indexado

Acessar elementos:

echo ${FRUTAS[0]} # Saída: Maçã (índice começa em 0)


echo ${FRUTAS[1]} # Saída: Banana

Imprimir todo o conteúdo:

echo "${FRUTAS[@]}" # Saída: Maçã Banana Laranja

Imprimir índices do array:

echo "${!FRUTAS[@]}" # Saída: 0 1 2

Tamanho do array:
echo "${#FRUTAS[@]}" # Saída: 3 (número de elementos)

🔹 Chamar Variável no echo

Dentro de um echo, variáveis são expandidas quando usam $:

Exemplo 1 (diretamente):

NOME="Maria"
echo "Olá, $NOME!" # Saída: Olá, Maria!

Exemplo 2 (com chaves para evitar ambiguidade):

DIA="07"
echo "O dia é ${DIA}th" # Saída: O dia é 07th

Exemplo 3 (array no echo):

CORES=("Verde" "Azul")
echo "Cor 1: ${CORES[0]}, Cor 2: ${CORES[1]}" # Saída: Cor 1: Verde, Cor 2: Azul

🔹 Exemplo Completo

#!/bin/bash

# Declarações
readonly ESCOLA="ESUDA"
ALUNOS=("Ana" "Carlos" "Diana")

# Uso
echo "Escola: $ESCOLA"
echo "Alunos: ${ALUNOS[@]}"
echo "Índices: ${!ALUNOS[@]}"
echo "Primeiro aluno: ${ALUNOS[0]}"

Saída
Escola: ESUDA
Alunos: Ana Carlos Diana
Índices: 0 1 2
Primeiro aluno: Ana

📌 Dicas Importantes:
1. Arrays vs. Strings:

VAR="a b c" ≠ ARR=("a" "b" "c").


Para arrays, use ${ARR[@]} para expandir corretamente.

2. Aspas:

Use "${VAR}" para preservar espaços em strings.

3. Variáveis Globais:

Por padrão, variáveis são globais. Use local em funções para escopo local.

Se tiver mais dúvidas, é só perguntar! 😊

5. Leitura de Variáveis via Linha de Comando

🔹 📌 Objetivo

Aprender a capturar dados fornecidos pelo usuário durante a execução de um script, tornando-o interativo e
dinâmico.

🔹 Comando read

O comando read é usado para ler entrada do usuário ou de arquivos e armazená-la em variáveis.

Sintaxe Básica:

read -p "Mensagem de prompt" NOME_VARIAVEL

Exemplo:

#!/bin/bash
read -p "Digite seu nome: " NOME
echo "Olá, $NOME! Bem-vindo ao Shell Script!"

Execução e Saída:
$ ./[Link]
Digite seu nome: Maria
Olá, Maria! Bem-vindo ao Shell Script!

🔹 Argumentos de Linha de Comando

Scripts podem receber argumentos diretamente da linha de comando, acessíveis por posição ($1, $2, ...).

Variáveis Especiais:

Variável Descrição

$0 Nome do script.

$1 a $9 Argumentos posicionais (1º ao 9º).

$# Número total de argumentos.

$@ Todos os argumentos como uma lista.

Exemplo 1:

#!/bin/bash
echo "Script executado: $0"
echo "Primeiro argumento: $1"
echo "Segundo argumento: $2"
echo "Total de argumentos: $#"
echo "Todos os argumentos: $@"

Execução e Saída:

$ ./[Link] Sport 87
Script executado: ./[Link]
Primeiro argumento: Sport
Segundo argumento: 87
Total de argumentos: 2
Todos os argumentos: Sport 87

Exemplo 2:

#!/bin/bash
arg0=$0
arg1=$1
arg2=$2
echo "Script executado: $arg0"
echo "Primeiro argumento: $arg1"
echo "Segundo argumento: $arg2"
echo "Total de argumentos: $#"
echo "Todos os argumentos: $@"

Execução e Saída:

$ ./[Link] Sport 87
Script executado: ./[Link]
Primeiro argumento: Sport
Segundo argumento: 87
Total de argumentos: 2
Todos os argumentos: Sport 87

🛠 Próxima Aula:
Estruturas de controle (if, for, while) e operadores lógicos!

Exercício Prático:
Crie um script que declare:

Uma variável constante com seu nome.


Um array com 3 cores favoritas.
Imprima os valores usando echo.

Você também pode gostar