50% de desconto todos os planos, por tempo limitado. Começando em $2.48/mo
11 minutos restantes
Servidores e SO

Funções Bash explicadas: sintaxe, exemplos e casos de uso

Kelly Watson By Kelly Watson 11 minutos de leitura Atualizado em 14 de dezembro de 2025
Ilustração 3D abstrata de blocos de código azuis brilhantes montados em uma estrutura modular, representando funções Bash

As funções Bash agrupam comandos relacionados sob um único nome. Quando você chama esse nome, todo o bloco é executado. Você pode passar argumentos para personalizar o comportamento e retornar valores para comunicar os resultados. Isso mantém seu código limpo e fácil de manter.

O Linux domina os ambientes de servidores globalmente, portanto, dominar as funções do Bash é mais importante do que nunca. As funções transformam scripts confusos em automação limpa e reutilizável.

Este guia orienta você desde a sintaxe básica até casos de uso avançados. Você aprenderá como declarar funções, passar parâmetros, manipular valores de retorno e verá dez exemplos práticos que você pode usar em seus próprios scripts.

DR

  • As funções Bash são blocos de código nomeados que você pode reutilizar em seus scripts
  • Defina funções usando nome_função() {comandos; } sintaxe
  • Passe argumentos usando $1, $2, $3 parâmetros posicionais
  • As funções melhoram a legibilidade, modularidade e manutenção do código
  • Usar retornar para sair de funções e comunicar códigos de status (0 = sucesso, diferente de zero = falha)
  • Funções podem ser compartilhadas entre scripts usando fonte or exportar -f
  • Exemplos práticos incluem backup de arquivos, monitoramento de disco, validação de entrada e verificação de serviço

O que é script Bash?

Ilustração 3D de um pergaminho digital com código Bash brilhante escrevendo sozinho, representando a automação de scripts Bash.

O script Bash é um método de automação de tarefas usando o shell Bash. Ele serve como interface de linha de comando padrão para Linux e continua sendo uma ferramenta padrão no macOS. Um script Bash é um programa codificado na linguagem de script Bash, que pode ser executado em um terminal ou como um arquivo de script independente.

Com O uso de desktops Linux está crescendo constantemente e o sistema operacional dominando os ambientes de servidores em todo o mundo, as habilidades de script Bash tornaram-se valiosas para os profissionais de TI. A linguagem se integra bem com ferramentas DevOps como Docker, Kubernetes e pipelines de CI/CD.

O script Bash permite que você execute tarefas desde comandos simples até automação complexa e administração de sistema. Você pode automatizar tarefas repetitivas, desenvolver scripts de manutenção, construir pipelines de implantação, gerenciar sistemas de software e manipular dados.

O que é uma função Bash?

Ilustração digital futurista mostrando dados confusos de linha de comando sendo organizados por uma porta de processamento brilhante, simbolizando como funciona uma função Bash, com espaço vazio à esquerda.

Uma função Bash pode ser definida como um conjunto de comandos definidos em um script Bash ou definidos interativamente no prompt de comando, dependendo do caso de uso. Uma vez definida, uma função Bash pode ser chamada várias vezes dentro do script ou em outros scripts, assim como um comando shell normal.

As funções Bash permitem criar blocos de código reutilizáveis ​​que podem realizar operações complexas, organizar seu código e simplificar seus scripts. Você pode passar argumentos para uma função Bash e usá-los dentro da função para realizar operações. As funções Bash retornam valores que você pode usar em outro lugar do seu script.

e cobriremos vários estilos de implementação específicos, incluindo função_simples para lógica básica, entradas_simples para tratamento de argumentos e estruturas avançadas, como fibonnaci_recursion.

Fundamentos das funções Bash é importante para qualquer administrador de sistema ou engenheiro de DevOps que trabalhe com automação. As seções a seguir cobrem cada um desses tipos em detalhes.

Por que usar funções Bash?

Engrenagem azul brilhante com símbolos de otimização acionando uma máquina de código, representando a eficiência e a velocidade obtidas com o uso de funções Bash.

Agora que a definição das funções Bash foi abordada, vamos revisar suas principais vantagens. Esta seção ajuda você a entender onde as funções são mais úteis.

Reutilização

Você cria uma função Bash e tem uma ferramenta poderosa. Você pode escrever um bloco de código uma vez e reutilizá-lo várias vezes em seu script ou até mesmo em outros scripts.

Isso torna seu código mais eficiente e economiza tempo, eliminando duplicações. Manter seu código fica mais simples, pois você só precisa alterar a função em um só lugar.

Legibilidade

Scripts complexos podem ser difíceis de decifrar. As funções Bash resolvem isso dividindo seu script em partes menores e mais gerenciáveis.

Cada função serve a um propósito específico com um nome descritivo que explica sua função. Isso ajuda você e outras pessoas a compreender e manter o código com mais facilidade.

Modularidade

Funções organizam seu código. Você pode dividir a lógica em módulos menores, o que mantém a estrutura do script limpa e fácil de gerenciar.

E se precisar adicionar um novo recurso, você pode fazer isso sem mexer em outras partes do seu script. Quando chegar a hora de remover ou modificar funcionalidades, o restante do script permanece intacto.

Parâmetros da função Bash

Você pode passar argumentos ou parâmetros para suas funções. Esses argumentos permitem que suas funções se adaptem e executem diferentes ações com base nas entradas que recebem.

Isto abre muitas possibilidades ao mesmo tempo que torna as suas funções mais versáteis e adaptáveis. Em vez de escrever código semelhante várias vezes, você escreve uma função que lida com entradas diferentes.

Como e onde usar funções Bash?

Fluxograma de vidro 3D mostrando a execução do script ramificando-se em um bloco de função e retornando, visualizando como as funções Bash são usadas no fluxo lógico.

Agora, vamos ser um pouco mais técnicos com nossa definição e começar com um pequeno exemplo de como criar funções Bash. A sintaxe a seguir pode ser usada em ambientes baseados em Unix. Se você trabalha no Windows, você pode instale o Linux Bash no Windows 10 para acompanhar esses exemplos.

Criando uma função Bash

Comece usando a seguinte estrutura de comando:

nome_da_função() {

    # comandos vão aqui

}

 

Depois de criar a função, você poderá usá-la em seu código a qualquer momento. Aqui está um exemplo prático:

saudar () {

    echo “Olá, $ 1!”

}

 

Chame esta função com cumprimentar o mundo para gerar “Olá, mundo!” O $1 representa o primeiro argumento passado para a função.

Aqui estão mais alguns exemplos práticos que você pode usar em seus próprios scripts:

# Crie um backup de qualquer arquivo

arquivo_backup () {

    cp “$1” “$1.bak”

    echo “Backup criado: $ 1.bak”

}

 

# Verifique se existe um diretório, crie se não existir

garantir_dir() {

    se [ ! -d “$1”]; então

        mkdir -p “$1”

        echo “Diretório criado: $1”

    fi

}

 

# Registrar mensagens com carimbos de data/hora

log_mensagem() {

    echo “[$(data ‘+%Y-%m-%d %H:%M:%S’)] $1”

}

 

Você define essas funções Bash personalizadas uma vez e as chama sempre que necessário em todo o seu script.

Fundamentos da sintaxe da função

As funções se comportam como miniscripts dentro do seu script principal, mas compartilham a memória do shell. Tenha esses três comportamentos específicos em mente ao escrevê-los.

Escopo Variável (Local vs. Global)

Variáveis ​​dentro de funções são globais por padrão. Se você definir minha_var=”teste” dentro de uma função, ele substitui qualquer existente minha_var em seu roteiro. Sempre use local confinar variáveis ​​à função evita efeitos colaterais:

local minha_var=”valor”

Parâmetros posicionais

Funções leem argumentos usando o mesmo $1, $2, e $@ variáveis ​​como scripts. Eles são locais para a função e redefinidos quando a função é encerrada. Os argumentos originais do script não são acessíveis dentro da função, a menos que você os transmita explicitamente.

Valores de retorno

As funções Bash não retornam dados como funções Python ou JavaScript. O retornar O comando define apenas um status de saída (0-255) para indicar sucesso ou falha. Para retornar dados reais (como uma string ou cálculo), eco o resultado e capture-o ao chamar a função:

resultado=$(minha_função)

Os 10 principais exemplos úteis de funções Bash

Agora que você entende as funções Bash e como criá-las, aqui estão dez exemplos práticos que você pode adicionar aos seus scripts. Cada função resolve um problema comum e demonstra estrutura, argumentos e valores de retorno adequados.

1. Função de backup de arquivos

Cria um backup com carimbo de data/hora de qualquer arquivo:

arquivo_backup () {

    arquivo local=”$1″

    backup local=”${arquivo}.$(data +%Y%m%d_%H%M%S).bak”

    

    if [ -f “$arquivo”]; então

        cp “$arquivo” “$backup”

        echo “Backup criado: $backup”

        retornar 0

    outro

        echo “Erro: Arquivo não encontrado”

        retornar 1

    fi

}

 

Uso: arquivo_backup /etc/nginx/nginx.conf

2. Verificador de diretório

Verifica se existe um diretório e o cria, se necessário:

garantir_dir() {

    diretório local=”$1″

    

    se [ ! -d “$dir”]; então

        mkdir -p “$dir”

        echo “Criado: $dir”

    fi

}

 

Uso: garantir_dir /var/log/myapp

3. Registrador com carimbo de data e hora

Adiciona carimbos de data/hora às mensagens de log para depuração:

log_mensagem() {

    nível local=”$1″

    mensagem local=”$2″

    echo “[$(data ‘+%Y-%m-%d %H:%M:%S’)] [$nível] $mensagem”

}

 

Uso: log_message “INFO” “Script iniciado”

4. Monitor de espaço em disco

Verifica o uso do disco e avisa se exceder um limite:

check_disk_space () {

    limite local=”${1:-80}”

    uso local=$(df / | tail -1 | awk ‘{print $5}’ | tr -d ‘%’)

    

    if [“$usage” -gt “$threshold”]; então

        echo “Aviso: uso do disco em ${usage}%”

        retornar 1

    fi

    retornar 0

}

 

Uso: check_disk_space 90

5. Validador de entrada

Valida que a entrada do usuário não está vazia:

validar_input() {

    entrada local=”$1″

    nome local=”$2″

    

    if [ -z “$entrada”]; então

        echo “Erro: $nome não pode estar vazio”

        retornar 1

    fi

    retornar 0

}

 

Uso: validar_input “$ nome de usuário” “Nome de usuário”

6. Verificador de status de serviço

Verifica se um serviço está em execução e relata o status:

check_service() {

    serviço local=”$1″

    

    se systemctl estiver ativo –quiet “$service”; então

        echo “$serviço está em execução”

        retornar 0

    outro

        echo “$service não está rodando”

        retornar 1

    fi

}

 

Uso: check_service nginx

7. Extrator de extensão de arquivo

Extrai a extensão de um nome de arquivo:

get_extension() {

    nome do arquivo local=”$1″

    echo “${nome do arquivo##*.}”

}

 

Uso: ext=$(get_extension “document.pdf”)

8. Aparador de cordas

Remove espaços em branco à esquerda e à direita das strings:

trim_string() {

    string local=”$1″

    str=”${str#”${str%%[![:espaço:]]*}”}”

    str=”${str%”${str##*[![:espaço:]]}”}”

    eco “$str”

}

 

Uso: clean=$(trim_string ”olá mundo“)

9. Arquivador de arquivos seguro

Move um arquivo para um diretório $HOME/.trash personalizado em vez de excluí-lo permanentemente. Ele anexa um carimbo de data/hora ao nome do arquivo para evitar a substituição de backups anteriores.

safe_remove() {

    arquivo local=”$1″

    lixo local=”$HOME/.trash”

    # Anexar carimbo de data/hora para evitar sobrescrever arquivos existentes

    local novo_nome=”$(nome base “$arquivo”)_$(data +%s)”

    

    mkdir -p “$ lixo”

 

    if [ -e “$arquivo”]; então

        mv “$arquivo” “$lixo/$novo_nome”

        echo “Movido para arquivo: $file -> $trash/$new_name”

    outro

        echo “Erro: $arquivo não encontrado”

        retornar 1

    fi

}

 

Uso: safe_remove old_script.sh

 

10. Repórter de status

Demonstra o mecanismo de retorno da função Bash para tratamento de erros. O valor de retorno da função Bash indica sucesso (0) ou falha (diferente de zero):

dados_processo() {

    arquivo local=”$1″

    

    se [ ! -f “$arquivo”]; então

        retornar 1

    fi

    

    # Processa o arquivo

    gato “$arquivo” | wc-l

    retornar 0

}

 

# Verifique o valor de retorno

process_data “dados.txt”

se [$? -eq 0]; então

    echo “Processamento concluído”

outro

    echo “Falha no processamento”

fi

 

O $? variável captura o status de saída do último comando ou chamada de função.

Função Propósito Recurso principal
arquivo_backup Crie backups de arquivos Nomenclatura com carimbo de data e hora
garantir_dir Gerenciamento de diretório Cria se estiver faltando
mensagem_de_log Registro Prefixo de carimbo de data/hora
check_disk_space Monitoramento do sistema Alertas de limite
validar_input Validação de entrada Verificação de string vazia
check_service Monitoramento de serviço Integração do sistema
obter_extensão Análise de string Expansão de parâmetros
trim_string Limpeza de string Remoção de espaços em branco
remoção_segura Exclusão segura Diretório de lixo
dados_do_processo Tratamento de erros Valores de retorno

Executando funções Bash em um VPS

As funções Bash tornam-se poderosas quando executadas em um ambiente de servidor dedicado. Nosso VPS Linux oferece acesso root total para personalizar seu ambiente shell, criar bibliotecas de funções em todo o sistema e automatizar tarefas de gerenciamento de servidor sem restrições.

Com um VPS você pode armazenar funções reutilizáveis ​​em /etc/profile.d/ para todos os usuários, agende scripts baseados em funções por meio de tarefas cron e crie pipelines de automação para implantação e manutenção. Oferecemos servidores em 12 locais globais com velocidades de rede de até 40 Gbps e memória DDR5, o que significa execução de scripts mais rápida e processamento de dados mais suave.

Esse nível de controle torna um VPS ideal para qualquer pessoa séria em shell scripting e automação de sistema.

Conclusão

As funções Bash são essenciais para a criação de scripts modulares e reutilizáveis. Eles permitem agrupar comandos relacionados e encapsular lógica complexa para tornar seu código mais fácil de ler e manter. Se você gerencia infraestrutura em nuvem, automatiza pipelines de implantação ou lida com tarefas rotineiras de administração de sistema, as funções ajudam a manter seus scripts organizados e eficientes.

Neste artigo, abordamos os fundamentos das funções Bash, incluindo como defini-las e chamá-las, dez exemplos práticos de funções e casos de uso comuns para ajudá-lo a começar seus próprios projetos de automação.

Combinado com estruturas de controle como o Bash if declaração, as funções fornecem os blocos de construção para uma automação poderosa. Ao usar funções Bash em seus scripts, você pode escrever um código mais limpo e modular, mais fácil de entender e manter.

Perguntas frequentes

As funções Bash podem ter variáveis ​​locais?

Sim. As funções Bash podem ter variáveis ​​locais usando a palavra-chave local. Isso restringe o escopo da variável à função, evitando que ela afete variáveis ​​com o mesmo nome fora da função.

As funções Bash podem ser recursivas?

Sim, as funções Bash podem ser recursivas. Bash tem um tamanho de pilha de chamadas padrão relativamente pequeno, portanto, dependendo das funções recursivas que você tem em mente, pode ser necessário aumentá-lo usando o comando ulimit -s antes da execução.

Posso usar funções Bash em outros scripts?

Sim, você pode compartilhar funções Bash entre scripts usando o comando source (ou sua abreviação .). Ao obter um arquivo contendo suas definições de função, você disponibiliza essas funções no script de chamada. Para processos filhos, use export -f function_name para tornar a função acessível.

Posso usar funções Bash em pipelines?

Sim, mas requer etapas específicas para comandos externos. Dentro de um script, você pode canalizar dados diretamente para uma função (por exemplo, arquivo cat | my_function). No entanto, comandos como xargs ou find -exec são executados em um novo ambiente. Para usar uma função lá, você deve exportá-la (export -f my_func) e então invocar explicitamente o Bash (por exemplo, xargs bash -c ‘my_func “$@”‘).

O que é uma função de script de shell?

Uma função de script de shell é um bloco de código definido dentro de um script de shell que serve a um propósito específico e pode ser chamado de várias partes do script. As funções oferecem grande valor em termos de modularidade de código, melhor capacidade de reutilização e manutenção mais fácil. No contexto do script Bash, as funções são encapsuladas no script geral.

Compartilhar

Mais do blog

Continue lendo.

Os melhores aplicativos auto-hospedados que você pode executar com a imagem da capa do Cosmos Cloud com painéis de aplicativos em torno de um painel do Cosmos.
Servidores e SO

Os melhores aplicativos auto-hospedados que você pode executar com o Cosmos Cloud: arquivos, mídia, senhas, automação e muito mais!

Talvez você tenha configurado o Cosmos Cloud e agora queira ver quais aplicativos combinam bem com ele, ou talvez você ainda nem tenha decidido sobre o Cosmos e só queira ver se ele se adapta bem ao seu trabalho.

Nick PrataNick Prata 16 minutos de leitura
Portainer vs Cosmos Cloud para gerenciamento de aplicativos Docker com diagrama de configuração híbrida e operações neon vs blocos de acesso.
Servidores e SO

Portainer vs Cosmos Cloud: melhor opção para gerenciamento de aplicativos Docker

Se você já conhece o Docker e deseja apenas uma maneira mais limpa de executar uma pilha de aplicativos crescente, aqui está a resposta curta para Portainer vs Cosmos Cloud. Portainer é a escolha mais forte para direção

Nick PrataNick Prata 14 minutos de leitura
Gráfico de recurso Cosmos Cloud vs CasaOS vs Umbrel mostrando três caminhos auto-hospedados dentro de um mundo abstrato de rede em nuvem.
Servidores e SO

Cosmos Cloud vs CasaOS vs Umbrel: Qual plataforma auto-hospedada se adapta à sua configuração?

A resposta curta é que o CasaOS ainda é o lugar mais fácil para começar, o Umbrel tem a sensação de curadoria mais limpa e o Cosmos Cloud faz mais sentido quando você deseja um controle mais rígido sobre o doma.

Nick PrataNick Prata 11 minutos de leitura

Pronto para implantar? A partir de $ 2,48 / mês.

Nuvem independente, desde 2008. AMD EPYC, NVMe, 40 Gbps. Devolução do dinheiro em 14 dias.