0Pricing
Linux Command Line & Bash Scripting Mastery · Aula

Funções de Shell e Fragmentos Reutilizáveis

Defina e utilize funções Bash para agrupar comandos em blocos reutilizáveis e parametrizados para a sua shell.

Funções de Shell e Fragmentos Reutilizáveis é uma aula grátis de Linux Command Line & Bash Scripting Mastery no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Linux Command Line & Bash Scripting Mastery, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Linux Command Line & Bash Scripting Mastery inclui 4 aulas no total.

Por que usar funções do shell?

Uma função do shell agrupa um conjunto de comandos sob um único nome, para que você possa reutilizá-los sem redigitá-los.

  • Mais rápidas do que copiar e colar comandos
  • Mais organizadas do que aliases longos
  • Podem aceitar argumentos, ao contrário dos aliases
mkcd() {
  mkdir -p "$1" && cd "$1"
}

Definindo uma função

A forma mais simples usa a sintaxe name() { ... }. Os comandos entre as chaves são executados quando você chama a função pelo nome.

greet() {
  echo "Hello from a function"
}
greet

Argumentos de funções

As funções recebem parâmetros posicionais, assim como os scripts: $1, $2. $# é a contagem e $@ se expande para todos os argumentos.

backup() {
  cp "$1" "$1.bak"
  echo "Backed up $1"
}
backup notes.txt

Valores de retorno e status de saída

As funções retornam um status de saída por meio de return N (0–255). Use-o para verificar sucesso ou falha, não para retornar dados.

is_root() {
  [ "$(id -u)" -eq 0 ] && return 0 || return 1
}
if is_root; then echo root; else echo normal; fi

Retornando saída por meio de echo

Como return transporta apenas um código de status, a saída real é exibida e capturada com $( ).

timestamp() {
  date +%Y%m%d-%H%M%S
}
name="log-$(timestamp).txt"
echo "$name"

Variáveis locais

Por padrão, as variáveis dentro das funções são globais. Use local para limitar o escopo de uma variável à função e evitar poluir o shell.

count_lines() {
  local n
  n=$(wc -l < "$1")
  echo "$1 has $n lines"
}

Valores padrão dos argumentos

Use a expansão de parâmetros ${1:-default} para recorrer a um valor padrão quando um argumento estiver ausente.

say() {
  local msg="${1:-Hello World}"
  echo "$msg"
}
say
say "Custom message"

Funções versus aliases

Os aliases simplesmente substituem texto e não conseguem receber argumentos posicionais de forma adequada. As funções podem ramificar, repetir ações e processar a entrada.

  • Use um alias para um atalho fixo
  • Use uma função quando precisar de lógica ou argumentos
alias ll='ls -la'
lt() { ls -la "${1:-.}" | tail -n "${2:-5}"; }

Tornando as funções persistentes

As funções definidas no prompt desaparecem quando o shell é encerrado. Adicione-as a ~/.bashrc para disponibilizá-las em todas as sessões.

# Append to ~/.bashrc
extract() {
  case "$1" in
    *.tar.gz) tar xzf "$1" ;;
    *.zip)    unzip "$1" ;;
    *)        echo "Unknown format" ;;
  esac
}

Listando e removendo funções

declare -F lista os nomes das funções; declare -f name exibe o corpo. Remova uma função com unset -f name.

declare -F
declare -f greet
unset -f greet

Compondo funções

As funções podem chamar outras funções, permitindo combinar pequenos componentes reutilizáveis em ferramentas maiores.

log() { echo "[$(date +%T)] $*"; }
deploy() {
  log "Starting deploy"
  log "Done"
}
deploy

Verificação rápida

Teste sua compreensão sobre funções do shell.

Recapitulação

Você aprendeu a criar funções reutilizáveis do shell:

  • Defina com name() { ... } e chame pelo nome
  • Use $1, $@, $# para argumentos e return para o status
  • Delimite o escopo das variáveis com local e retorne dados por meio de echo
  • Torne-as persistentes em ~/.bashrc e inspecione-as com declare -f

Perguntas Frequentes

A aula “Funções de Shell e Fragmentos Reutilizáveis” é grátis?

Sim — o texto completo de “Funções de Shell e Fragmentos Reutilizáveis” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Linux Command Line & Bash Scripting Mastery, atualize para CoddyKit PRO. O curso de Linux Command Line & Bash Scripting Mastery inclui 4 aulas no total.

O que vou aprender em “Funções de Shell e Fragmentos Reutilizáveis”?

Defina e utilize funções Bash para agrupar comandos em blocos reutilizáveis e parametrizados para a sua shell. Você pratica Linux Command Line & Bash Scripting Mastery com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Linux Command Line & Bash Scripting Mastery?

Nenhuma experiência prévia é necessária. Linux Command Line & Bash Scripting Mastery no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.

Quanto tempo leva a aula “Funções de Shell e Fragmentos Reutilizáveis”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Linux Command Line & Bash Scripting Mastery?

Sim. Cada aula de Linux Command Line & Bash Scripting Mastery inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Controle de Tarefas (bg, fg, jobs)
  2. Expansão e Globbing do Shell
  3. Aliases e Prompts Personalizados
  4. Funções de Shell e Fragmentos Reutilizáveis
← Voltar para Linux Command Line & Bash Scripting Mastery