Os scripts Bash são úteis para automatizar tarefas e você descobrirá que eles são ótimos para criar aplicativos simples de linha de comando. O shell Bash interpreta scripts Bash, portanto, você não precisará instalar nenhuma dependência para escrevê-los e executá-los. Os scripts Bash também são portáteis, pois a maioria dos sistemas operacionais baseados em Unix usa o mesmo interpretador de shell.

O conhecimento de scripts Bash é uma obrigação para todo desenvolvedor, especialmente se você trabalha com sistemas baseados em Unix.

Variáveis ​​no Bash

Variáveis ​​Bash diferenciam maiúsculas de minúsculas. Para declarar variáveis, use um sinal de igual (=) com o nome à esquerda e o valor à direita:

ESTADO=Washington

O valor que esta declaração atribui a ESTADO é uma única palavra. Se você precisar de espaços em seu valor, use aspas em torno dele:

ESTADO="Norte do Arizona"

Você precisará usar um cifrão ($) prefixo para referenciar variáveis ​​em outras variáveis ​​ou instruções:

ESTADO=Washington
LOCATION="Minha localização é $STATE"
instagram viewer

Imprimindo valores no Bash

Existem várias maneiras de imprimir variáveis ​​no Bash. Você pode usar o eco comando para saída básica ou o estilo C printf comando para formatação de strings.

ESTADO=Washington
LOCATION="Minha localização é $STATE"
eco$LOCATION

Após declarar o ESTADO variável, este script define LOCALIZAÇÃO referenciando ESTADO. If então usa echo para imprimir o valor final da variável LOCATION.

o printf palavra-chave permite que você use verbos de formatação para gerar dados. Os verbos de formatação de string são semelhantes aos de C e Go, mas com verbos limitados.

Verbo Funcionalidade
%c imprime caracteres simples
%o imprime Octadecimais
%s imprime strings, independente do invólucro
%x imprime letras minúsculas hexadecimais
%X imprime maiúsculas hexadecimais
%d imprime inteiros
%e imprime a noção científica flutua em letras minúsculas
%E imprime a noção científica flutua em letras maiúsculas
%f imprime números de ponto flutuante
%% imprime um único símbolo de porcentagem.

Aqui está um exemplo de uso de um verbo com o imprimir palavra-chave.

ESTADO=Lagos
printf "Meu local é %s" $STATE

o printf função substituiria o ESTADO variável na posição do %s verbo, e a saída seria “My Location is Lagos”.

Você pode fazer comentários no Bash com o hash ou libra (#) símbolo. O shell automaticamente ignora os comentários.

#!/bin/bash
# ESTADO=Washington
# LOCATION="Minha localização é $STATE"

Não há comentários de várias linhas. A maioria dos IDEs e editores de texto permitem que você comente com o atalho Ctrl/Command + barra (/). Você deve poder usar o atalho para criar vários comentários de linha única.

Recebendo a entrada do usuário no Bash

Como muitas outras linguagens de programação, você pode receber entradas do usuário no Bash para tornar seus programas/scripts mais interativos. Você pode usar o ler comando para solicitar a entrada do usuário.

ler resposta

Neste caso, o resposta variável manterá a entrada do usuário na entrega.

echo "O que você quer?: "
leia a resposta
echo $resposta

A solicitação de entrada do usuário estará em uma nova linha no exemplo acima.

Você pode adicionar o -n bandeira para o eco print para manter a linha em que o usuário insere a entrada.

echo -n "O que você quer."
leia a resposta
echo $resposta

Declarando Arrays no Bash

Matrizes no Bash são como a maioria das línguas. Você pode declarar uma variável de matriz no Bash especificando os elementos entre parênteses.

Países =('EUA' 'Rússia' 'Ucrânia', "Inglaterra", "Taiwan", "China")

Acessar uma matriz por meio de referência ao nome da variável buscaria o primeiro elemento. Você pode acessar a matriz inteira usando o sinal de asterisco como índice.

echo ${Países[*]}

Você também pode especificar o índice do array para acessar um elemento específico. O índice de uma matriz começa em zero.

eco "${Países[4]}"

Declarações condicionais no Bash

Bash fornece condicionais para tomada de decisão em programas.

Aqui está a anatomia de uma declaração if-else no Bash. Você terá que usar o ponto e vírgula para especificar o final da condição.

E se [[ doença ]]; então
eco declaração1
elif [[doença ]]; então
eco declaração2
senão [[doença ]]; então
eco declaração3
fi

Você deve terminar cada E se declaração com o fi palavra-chave.

E se [ 1 == 2 ]; então
eco 1
elif [ 2 == 3 ]; então#else-if
eco dois
senão [ 4 > 3 ];
eco "correto, 3"
fi

Você pode usar instruções case em seus programas Bash usando o caso palavra-chave. Você terá que especificar o padrão seguido pelos parênteses finais antes da instrução.

CIDADE=Lagos
caso$CITYdentro
"Washington") # padronizar
eco "Estados Unidos da América" # declaração
;; # fim de um caso
"Lagos" | "Abuja")
eco "Nigéria"
;;
"Joanesburgo" | "Cidade do Cabo")
eco "África do Sul"
;;
*) # padrão padrão
eco "Antártica" # declaração padrão
;;
esac# fim do comando case

Você pode definir o caso padrão usando o sinal de asterisco (*) como padrão. As declarações de caso devem terminar com o esac palavra-chave.

Loops no Bash

Dependendo de suas necessidades, você pode usar um loop while, um loop for de intervalo ou um estilo C for loop para operações recorrentes.

Aqui está um exemplo do loop for do estilo C. For-loops devem terminar com o feito palavra-chave, e você deve terminar a instrução for com um ponto e vírgula seguido pelo Faz palavra-chave.

por ((a = 0; a < 10; a+2)); Faz
eco$a
feito

O intervalo para loop é útil para trabalhar com arquivos e muitas outras operações. Você precisará usar o dentro palavra-chave com o intervalo for-loop.

por eu dentro {1..7}; Faz
eco$1
feito

Aqui está um loop infinito simples para demonstrar o Bash enquanto laços em ação.

nome=1
enquanto [ 1 -le 5 ] # enquanto 1 < 5
Faz
eco$nome
feito

o -le na declaração de condição é o operador binário para menos que.

Funções no Bash

Você não precisa de palavras-chave para declarar funções no Bash. Você pode declarar funções com o nome e depois entre parênteses antes do corpo da função.

print_working_directory() {
eco$PWD#chamando o comando PWD do script
}
eco "Tu es dentro $(print_working_directory)"

As funções podem retornar variáveis ​​no Bash. Tudo que você precisa é o Retorna palavra-chave.

print_working_directory() {
Retorna$PWD
}

o print_working_directory A função retorna o diretório de trabalho do arquivo.

Você pode escrever scripts de shell em outros idiomas

Bash não é a única linguagem que você pode usar para interagir com o shell do seu sistema operacional ou criar aplicativos de linha de comando. Você pode usar muitas outras linguagens como Go, Python, Ruby e Rust.

Muitos sistemas operacionais têm o Python3 pré-instalado e o Python é uma linguagem predominante. Se você precisar de ainda mais funcionalidades do que os scripts Bash podem oferecer, considere usar o Python.