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"
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.