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"
}
greetArgumentos 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.txtValores 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; fiRetornando 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 greetCompondo 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"
}
deployVerificaçã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 ereturnpara o status - Delimite o escopo das variáveis com
locale retorne dados por meio deecho - Torne-as persistentes em
~/.bashrce inspecione-as comdeclare -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
- Controle de Tarefas (bg, fg, jobs)
- Expansão e Globbing do Shell
- Aliases e Prompts Personalizados
- Funções de Shell e Fragmentos Reutilizáveis