Guia do iniciante

Tutorial de script Bash para iniciantes

Tutorial de script Bash para iniciantes

Se você está começando com sistemas Linux, termos como “Shell scripting” ou “Script Bash”Pode ser bastante comum - mas o que eles significam? Antes de entrarmos em detalhes, aprender a fazer scripts Bash pode ajudá-lo a economizar tempo na execução e execução de várias tarefas do sistema e entender melhor a linha de comando do Linux (Terminal) e automatizar várias tarefas do sistema.

O que é Bash?

Bash, um acrônimo para “Bourne-Again-Shell,” é um shell Unix ou interpretador de linguagem de comando para o sistema operacional GNU. Tem sido o principal Shell para distribuições Linux e Apple macOS antes do macOS Catalina. O Bash também está disponível para Windows 10 por meio do subsistema Windows para Linux.

O Bash normalmente é executado em uma janela de texto comumente conhecida como Terminal, onde os usuários digitam comandos para realizar várias tarefas. O Bash também pode executar comandos escritos em um arquivo, um método conhecido como “Script bash.”

Diferença entre script Bash e script Shell

Scripts Shell e Scripts Bash não são a mesma coisa. Com o script Bash, você está usando explicitamente o shell bash. Por outro lado, o script Shell pode ser uma palavra bastante ampla, pois temos outros shells disponíveis além do Bash. Alguns dos mais comuns incluem Korn (ksh), C shell (csh), Z shell (zsh) e o Bash shell (sh). No entanto, não seria uma surpresa encontrar pessoas usando script bash e script shell alternadamente com o mesmo significado. Nossa postagem sobre os 6 melhores shells de código aberto para Linux fornece uma descrição detalhada desses shells.

Nesta postagem, veremos o script Bash. Por padrão, muitas distribuições de Linux disponíveis usam o shell Bash. Confira nossa postagem sobre as 6 melhores distribuições de Linux para iniciantes. Para confirmar o shell que você está usando em sua distribuição Linux atual, execute o comando no Terminal.

echo $ SHELL

Concha

Na imagem acima, você pode ver que o interpretador padrão no meu sistema é o bash. Atualmente, estou executando o Ubuntu 20.04 LTS. Vamos mergulhar!

Compreendendo scripts Bash

Scripts Bash são arquivos de texto contendo comandos bash que são executados para realizar várias tarefas. Para escrever esses scripts, você só precisa de um editor de texto simples como gedit, leaf pad, vim, nano e muito mais. Lembre-se de salvar seus scripts com um .sh extensão e como texto simples e não rich text. Um dos meus editores favoritos que uso para escrever scripts é o editor nano.

Nomeando, atribuindo permissões e executando um script Bash

Conforme explicado acima, certifique-se de usar o .extensão sh para seus scripts bash. Por exemplo, você pode ter um script com o nome fosslinux_backup.sh. No entanto, seria melhor se você fosse cauteloso ao nomear seus scripts. Por exemplo, a maioria das pessoas gosta de salvar a maioria de seus scripts como “teste.”Desconhecido para a maioria, existe um comando interno do Unix chamado teste, que verifica os tipos de arquivo e compara os valores. Você pode usar o comando which para verificar se existe um programa com o mesmo nome do seu script para evitar quaisquer conflitos de programa.

qual [comando] e.g qual teste

Qual comando

A partir da saída acima, podemos ver que o teste já é um comando embutido. Portanto, para evitar conflitos entre programas, não nomearei nenhum dos meus scripts como "teste.”

Para tornar o script executável para todos os usuários, use o comando abaixo:

chmod + x [script.sh]

Para tornar o script executável para o usuário atual, use o comando abaixo:

chmod u + x [script.sh]

Agora, para executar o script, execute o comando abaixo:

./ [script_name]

Com o método acima, você perceberá que precisará usar o CD comando para mover para o diretório que contém o script ou passar o caminho para o script. No entanto, há uma solução alternativa para isso. Salve seus scripts no bin diretório presente no diretório home.

Com as atualizações recentes, a maioria das distribuições não vem com o bin pasta por padrão. Você será, portanto, obrigado a criá-lo manualmente. Ao colocar seus scripts nesta pasta, você pode executar o script digitando seu nome no Terminal sem usar o CD e ./ comandos.

Diretrizes de script Bash

Antes de escrever seu primeiro script, existem algumas diretrizes que você precisa entender ao escrever scripts.

O #!/ bin / bash Declaração (hach-bang hack) é o caminho para o shell que usaremos. Se você estiver usando outro shell, você precisará editar este caminho. Entendemos que todos os comentários começam com o # símbolo. No entanto, quando seguido por um (!) marca no Hash-Bang Hack, o script é forçado a executar com o shell apontado por esta linha. No nosso caso, é o shell Bash.

Seu primeiro script Bash

Como a maioria das linguagens de programação, vamos escrever um script que imprime o "Olá Mundo" declaração quando executada. Abra seu editor de texto favorito e cole os comandos abaixo. Salve o arquivo de texto como fossHelloWorld.sh ou qualquer outro nome que não seja um comando embutido.

#!/ bin / bash # Este script imprimirá 'Hello World' no Terminal echo "Hello World"

Depois de salvar o arquivo, torne-o executável executando o comando abaixo:

chmod + x fossHelloWorld.sh

Agora, execute-o com o comando abaixo:

./ fossHelloWorld.sh

Primeiro script

O script acima tem apenas três linhas. O primeiro é o Hash-Bang Hack, que discutimos acima, o segundo é um comentário e o terceiro é o comando que será executado. Observe, os comentários nunca são executados.

Vejamos outros recursos de script bash que você pode utilizar.

Comando eco

O comando Echo é usado para imprimir a saída na linha de comando ou Terminal do Linux. Se você é um desenvolvedor e já trabalhou com PHP antes, você deve ter encontrado este comando também. Vamos escrever um pequeno script bash para demonstrar como este comando funciona.

#!/ bin / bash # Vamos imprimir a primeira linha echo "Este é o Fosslinux.com - Com uma nova linha "# Vamos imprimir a segunda instrução sem uma nova linha echo -n" This is Fosslinux - No new Line "

Salve seu script, atribua as permissões necessárias e execute-o.

Bash Echo

Para entender o código, o primeiro comando echo imprime uma instrução e vai para a próxima linha. O segundo comando echo tem o -n argumento que impede o script de ir para a próxima linha. Você pode usar muitas outras opções com o comando Echo, incluindo variáveis, como veremos a seguir.

Variáveis

Variáveis ​​são uma parte comum e necessária de qualquer linguagem de programação. Pode-se declarar variáveis ​​Bash de várias maneiras. Ao atribuir um valor a qualquer variável, você não precisa usar nenhum símbolo. No entanto, ao chamar o valor da variável, você precisará usar o $ sinal no início da variável.

Você pode usar variáveis ​​no Terminal ou como scripts. Execute os comandos abaixo em seu Terminal.

meuWebsite = "Fosslinux.com "echo $ myWebsite

Usando variáveis ​​no terminal

Agora vamos criar um script bash que pega duas entradas do usuário e as armazena em variáveis $ x e $ y. O script irá então verificar se os dois valores são iguais ou não.

#!/ bin / bash echo "Digite o primeiro número" leia a echo "Digite o segundo número" leia b if [[$ a -eq $ b]] then echo "Os números são iguais" else echo "Os números não são iguais" fi

Salve o script e execute-o. Na imagem abaixo, você pode ver que inserimos valores diferentes, e o script foi capaz de verificar se eles são iguais ou não.

Variáveis ​​Bash

Agora, vamos dar uma olhada mais de perto no código. As duas primeiras instruções de eco solicitam que o usuário insira o primeiro e o segundo números. O leitura o comando irá esperar que o usuário insira um número e armazene-o na variável especificada. No nosso caso, isso é uma e b. Temos então uma instrução if que verifica se os dois valores são iguais ou não.

Afirmação condicional

Em qualquer linguagem de programação, as declarações condicionais controlam o fluxo de um programa. Um trecho de código será executado apenas quando uma determinada condição for atendida. Algumas das declarações condicionais mais comuns incluem "if-then-else" e "case.”Abaixo está a sintaxe básica da instrução if-then-else.

se [[condição]] então  senão  fi

Dê uma olhada no script abaixo, que usa a declaração condicional "if-then-else".

#!/ bin / bash echo "Enter Your Age" read age if ((age> 18)) then echo "Você pode ir à festa" else echo "Você não está qualificado para ir à festa" fi

Declarações condicionais Bash

Vamos percorrer o roteiro acima. Nós temos o eco declaração que solicita que os usuários digitem o número da idade. O leitura declaração armazena a idade inserida em uma variável “idade."Temos então uma declaração condicional if-then-else que verifica se a idade é maior que 18 antes de instruir o usuário.

rotações

Os loops são comumente usados ​​quando você deseja executar um trecho de código várias vezes. Por exemplo, se eu quisesse ecoar 1000 linhas da declaração “Bem-vindo ao Fosslinux,” eu exigiria 1000 declarações de eco. No entanto, com loops, tudo que eu preciso fazer é especificar o número de vezes que desejo que a instrução seja repetida ou impressa no Terminal. O Bash oferece suporte a três tipos de loops; For Loop, While Loop e Until Loop. Vamos dar uma olhada em cada um deles.

Um For Loop é usado para iterar através de uma lista de dados especificados ou uma matriz. Abaixo está a sintaxe básica do Bash For Loop;

para valor em 1 2 3 4 5… N faça a instrução1 instrução2 instrução-N feita

ou,

para VALUE em arquivo1 arquivo2 arquivo3 faça a instrução1 em $ VALUE instrução2 instrução-N feita

Dê uma olhada no script abaixo. Ele repete os dias da semana indicados e os imprime no Terminal linha por linha.

#Leia o nome do dia da semana em cada iteração do loop para o dia na segunda, terça, quarta, quinta, quinta, sexta, sábado, domingo, echo "$ day" done

Vamos salvar o script como ForLoop.sh e executá-lo. Abaixo está uma captura de tela da saída.

For Loop

Este é apenas um exemplo simples do que você pode fazer com o For Loop. Você também pode combiná-lo com declarações condicionais para completar uma tarefa específica.

O Loop While executa uma tarefa específica enquanto uma condição particular permanece Verdadeira. Em cada iteração, o loop verificará primeiro a condição antes de executar as instruções. Quando a condição for falsa, o loop será encerrado. A sintaxe básica do loop While bash é a seguinte:

enquanto [CONDITION] faça [COMMANDS] feito

Por exemplo, podemos ter um script que imprimirá a declaração “Bem-vindo à FOSSLINUX.COM ” 20 vezes até que uma variável X seja definida como 20. Vamos tentar implementar isso de forma prática. Dê uma olhada no script abaixo.

#!/ bin / bash x = 1 enquanto [$ x -le 20] echo "Bem-vindo à FOSSLINUX.COM "x = $ (($ x + 1)) concluído

Vamos salvar o script como WhileLoop.sh e executá-lo. Abaixo está uma captura de tela da saída.

While Loop

Vamos dar uma olhada no script While Loop acima. Primeiro declaramos uma variável X dando a ela o valor 1. Em seguida, criamos uma instrução While que produz a instrução “Bem-vindo à FOSSLINUX.COM ”enquanto X for menor que 20. Por último, incrementamos X em um após cada iteração.

Os loops Bash Até são usados ​​para executar um conjunto de instruções ou comandos, desde que a condição definida seja avaliada como falsa. Abaixo está a sintaxe básica do Até Loop.

até [CONDIÇÃO] fazer [INSTARUÇÕES / COMANDOS] pronto

Semelhante ao loop While, o loop until primeiro avalia a condição definida antes de executar as instruções ou comandos. Se a condição for avaliada como falsa, as instruções são executadas. O loop é encerrado quando a condição é avaliada como verdadeira. Dê uma olhada no exemplo abaixo.

#!/ bin / bash count = 0 até [$ count -gt 5] do echo Counter: $ count ((count ++)) done

Depois de salvar e executar o script acima, obtemos a saída abaixo:

Até Loop

Os scripts acima primeiro criam uma contagem de variável e a definem como zero (0). Essa é a condição que controla o fluxo do nosso programa. O loop until verifica se o valor da contagem é maior que 5. Se não estiver, ele irá imprimir as instruções passadas. No entanto, se o valor for maior que 5, o loop terminará imediatamente. Por último, incrementamos o valor da contagem em 1 (contagem ++).

Funções Bash

Na programação e no script, as funções são usadas para conter uma parte reutilizável do código necessária para executar uma tarefa específica. Portanto, se você tiver comandos semelhantes que deseja executar em diferentes partes do seu script, não precisa escrever esses comandos repetidamente. Coloque-os em uma função e execute a função em seu lugar.
Abaixo está a sintaxe básica da função Bash.

function_name ()    

ou,

function_name da função    

Vamos criar um script simples que faz uso de funções. Primeiro criamos uma função chamada “myFunction”, que produz a declaração “Olá, eu sou a primeira função” quando chamada. A segunda função, "myCities", é um pouco avançada, pois recebe argumentos passados. Os argumentos são fornecidos após chamar o nome da função. Eles são acessíveis na função como $ 1.

#!/ bin / bash myFunction () echo "Olá, sou a primeira função" echo "Olá, sou a primeira função" echo echo "Esta é a segunda função" function myCities () echo Hello $ 1 myFunction myCities Washington, D.C myCities Phoenix

Depois de salvar e executar o script, obtemos a saída abaixo.

Funções

Menus Bash

Ao escrever um script para executar uma tarefa avançada, você pode precisar que o usuário selecione uma única opção entre várias opções exibidas no Terminal. Para conseguir isso, vamos usar o bash selecionar comando.

Ele cria um script de menu simples que solicitará aos usuários que selecionem suas distribuições Linux favoritas em uma lista. Dê uma olhada no script abaixo.

#!/ bin / bash #Imprimir mensagem para o usuário echo "Selecione sua distribuição Linux favorita" selecione distro no Ubuntu Fedora OpenSUSE DeepIN Parrot ArchLinux Kali faça #Imprima o valor selecionado se [[$ distro == "Sair"]] e saia de 0 mais echo "A distribuição Linux selecionada está $ distro" fi done

Vamos salvar o script como menu.sh e execute-o. Nós temos a saída abaixo.

Menus Bash

No script acima, temos uma lista de distribuição do Seven Linux a partir do qual o usuário selecionará um. Depois de fazerem uma seleção, ela é armazenada na variável distro e depois impresso concatenando-o com a string “A distribuição Linux selecionada é.” Os menus de seleção do Bash podem ser bastante úteis, especialmente quando você tem vários scripts executando tarefas diferentes, e é necessário selecionar aquele que deseja executar.

Aritmética

Todas as linguagens de programação suportam a execução de operações aritméticas, e o script bash não é exceção. No entanto, como realizamos operações aritméticas é um pouco diferente. Abaixo está uma das maneiras de realizar operações aritméticas em bash. Veremos quatro tipos de operações aritméticas - soma, divisão e multiplicação.

#!/ bin / bash # Calcular o resultado da soma = $ ((70 + 15)) # Imprimir valor da soma echo "soma = $ resultado" # Calcular o resultado da divisão = $ ((100/25)) # Imprimir valor da divisão eco "divisão = $ result "#Calculate Multiplication result = $ ((15 * 15)) echo" Multiplication = $ result "

Vamos salvar o script acima como aritmética.sh e execute-o. Nós temos a saída abaixo.

Aritmética

Conclusão

Este é um guia completo para iniciantes para começar a usar scripts Bash. No entanto, há mais no Bash além do que é abordado neste tutorial. Um dos lugares que eu recomendaria para aprimorar suas habilidades é o GNU's Bash Reference Manual. Se você enfrentar qualquer problema ou comentar neste post, sinta-se à vontade para clicar nos comentários abaixo.

Os 5 principais produtos ergonômicos de mouse de computador para Linux
O uso prolongado do computador causa dor no pulso ou nos dedos? Você está sofrendo de rigidez nas articulações e constantemente precisa apertar as mão...
Como alterar as configurações do mouse e touchpad usando Xinput no Linux
A maioria das distribuições Linux vem com a biblioteca “libinput” por padrão para lidar com eventos de entrada em um sistema. Ele pode processar event...
Remapeie os botões do mouse de maneira diferente para software diferente com o controle de botão do mouse X
Talvez você precise de uma ferramenta que possa fazer o controle do seu mouse mudar com cada aplicativo que você usa. Se for esse o caso, você pode ex...