Se você está familiarizado com o sistema operacional Unix, já deve ter ouvido falar em bash, um tipo de shell muito utilizado nesse sistema. Assim como pessoas de diferentes países falam idiomas diferentes, os diferentes sistemas Unix oferecem tipos diferentes de shell. cada país
Antes de discutirmos os detalhes sobre o que é bash, é importante compreender o significado de shell. Basicamente, um shell fornece a interface do sistema Unix: ele coleta informações do sistema e executa programas de acordo com elas.
É no shell que a "mágica" acontece, ou seja, é nele que os programas, scripts e comandos são executados. O bash é um shell, mas também é uma linguagem de comando, por isso é possível programar em bash!
Dessa forma, se você quer saber mais sobre esse tema, continue lendo este artigo. Nele, você vai saber o que é bash, as principais aplicações e a sintaxe básica desta linguagem de programação.
Principais aplicações da linguagem Bash
Sintaxe básica da linguagem Bash
Tipos de variáveis em Bash
Programação em Bash
Idealizado por Steven Bourne, em 1977, o bash é o acrônimo de Bourne Again Shell. Ele é, ao mesmo tempo, um shell Unix e um interpretador de linguagem de comando.
Essa linguagem de programação também pode ser considerada um processador que executa comandos. Isso porque os desenvolvedores costumam utilizar o bash para emitir comandos simples e diretos que auxiliam na automação de tarefas cotidianas.
Se, antes de começar a ler este artigo, você considerava o bash apenas um shell que executa comandos, já percebeu que isso estava errado, certo? O bash também é uma linguagem de programação expressiva, capaz de realizar uma variedade de tarefas, economizando tempo e esforço das equipes de desenvolvimento.
Essa linguagem é compatível com sh que executa comandos linux, o que permite que o computador execute a sequência de comandos de modo automático. Isso quer dizer que não é o desenvolvedor (ou qualquer outra pessoa por trás da máquina) que realiza este processo.
Os comandos bash e a linguagem de programação bash possuem uma química perfeita. Não é à toa que a linguagem bash é uma das preferidas quando o assunto é automação de tarefas administrativas e rotineiras, principalmente aquelas quase impossíveis de automatizar.
O bash, assim como outras linguagens de script, permite que softwares-pai sejam constantemente aprimorados. Além disso, ele permite realizar diversas configurações de software e extrair dados. Para se ter uma ideia, a configuração da sequência de boot do UNIX é realizada com scripts shell.
Se você passava um dia inteiro executando dezenas de comandos manualmente, com o bash, você pode criar um script e solicitar que a máquina faça todo esse trabalho. Bacana, não é? Dessa forma, enquanto o computador realiza tarefas operacionais, você pode focar em assuntos mais importantes.
Em suma, as principais aplicações da linguagem linux bash são: manipulação de arquivos, monitoramento de sistema, automação dos processos de compilação de código, execução de backups de rotina, vinculação de programas existentes, realização de lotes de conclusão e execução de programas, além da criação de um ambiente para programas.
Aprender a programar em bash costuma ser mais fácil e rápido que outras linguagens. No entanto, um erro de script em shell que passa despercebido no código pode custar muito mais caro – e gerar mais dor de cabeça. Por isso, tenha cuidado!
De modo geral, qualquer script shell deve ser simples e eficiente. No caso do bash, script e linhas de comando têm a mesma sintaxe, evitando que haja erros de interpretação.
Com esse esclarecimento feito, é hora de falarmos sobre a sintaxe básica dessa linguagem, que é bash [options] [file]. O exemplo clássico "hello world" nessa sintaxe consiste em um único comando com um terminador explícito.
Como você percebeu, o script acima possui apenas duas linhas: a primeira indica ao sistema qual programa usar para executar o comando, e a segunda indica a única ação executada pelo script. Nesse caso, o comando vai imprimir 'Hello World' no terminal.
A sintaxe básica da linguagem bash leva outros elementos em consideração. Confira abaixo alguns pontos de atenção:
A pontuação sintática precisa ser declarada de forma explícita;
A programação em bash possui instruções de programa consecutivas que podem estar ou não relacionadas entre si;
As instruções de programa devem ser inseridas na linha de comando antes que o "Enter" seja pressionado no teclado;
Se houver uma segunda instrução no programa, a ação desta pode ou não depender das ações da primeira instrução;
Se o sistema utilizado for um programa de shell CLI, o ponto e vírgula deve ser usado para encerrar cada instrução e separá-la da próxima;
A última instrução em programas de shell CLI pode utilizar ponto e vírgula explícito ou implícito
Um ponto interessante para quem quer programar em bash é a utilização de variáveis, que nada mais são que tags ou nomes utilizados em vez de números para executar uma chamada. A boa notícia é que variáveis em shell não precisam ser "declaradas" antes de serem utilizadas, ou seja, basta atribuir um valor para criá-las.
Outro benefício é que as variáveis em shell podem receber qualquer tipo de conteúdo: desde texto e números até status de saída de um comando. O conteúdo de uma variável deve ter o símbolo $ antes do nome dela. Os nomes das variáveis são em maiúsculas para se distinguirem das variáveis definidas nas scripts (que normalmente são em minúsculas).
Existem dois tipos de variáveis: as de shell e as de ambiente. A diferença entre elas é que a variável shell está disponível apenas no shell atual, enquanto a de ambiente é disponibilizada globalmente num programa e nos programas filhos.
Algumas variáveis de ambiente são:
HOME: indica o diretório base do usuário;
SHELL: descreve o shell responsável por interpretar os comandos;
USER: define o usuário conectado;
TERM: indica o tipo de terminal utilizado;
MAIL: especifica o caminho para a caixa de correio do usuário;
PWD: indica o diretório de trabalho;
PATH: fornece a lista de diretórios que o sistema irá verificar ao procurar por comandos;
LANG: especifica a configuração atual de idioma e localização.
Algumas variáveis de shell que você poderá ver com frequência são:
UID: identidade do usuário atual;
HOSTNAME: o nome do host do computador;
SHELLOPTS: opções de shell que se pode definir usando opção set;
BASH_VERSION: a versão do bash;
HISTSIZE: número de linhas de histórico de comando possíveis na memória;
DIRSTACK: diretórios disponíveis com os comandos pushd e popd.
HISTFILESIZE: número de linhas de histórico de comando armazenadas;
IFS: no campo interno, serve para separar entradas na linha de comando.
Neste artigo, mostramos apenas um pouco do potencial da linguagem bash. No entanto, assim como em diferentes linguagens de programação, o poder está na mão do programador ou programadora.
É a pessoa por trás do computador que vai decidir a ferramenta mais adequada para resolução de problemas e se isso envolve automatização de comandos disponíveis no terminal e tarefas administrativas.
Assim, o verdadeiro trunfo dessa linguagem são as automações que entusiastas e desenvolvedores inventam para si mesmos, de modo a tornar o trabalho diário muito mais rápido e personalizado.
Esperamos que esse artigo tenha lhe ajudado a entender melhor o lado do bash que poucos conhecem, o lado da programação!