Introdução ao Bash Script - Linux
Um Bash script ou shell script é um arquivo de texto que contém uma sequência de comandos. Basicamente, qualquer coisa que possa executar vários comandos pode ser considerada um shell script.
Vamos criar um shell script simples. Para isso, vamos criar um arquivo de texto comum no diretório home, que chamaremos de hello
:
programicio@Programicio:~$ touch hello
Ao escolher o nome do script, é importante garantir que ele seja único. Não deve haver comandos com o mesmo nome, caso contrário, o comando será executado em vez do shell script (a menos que você adicione o prefixo ./
antes do nome do script). Neste exemplo, chamei o script de hello
porque não há comandos com esse nome no meu sistema. Para garantir a unicidade do nome, você pode usar o comando which hello
, que tentará encontrar a localização do arquivo de comando hello
, se ele existir.
Após criar o arquivo hello
, defina o seguinte conteúdo nele(isso pode ser feito com o comando: nano hello
):
#!/bin/bash # script que exibe no console a mensagem "hello www.programicio.com" # para executar, vá para o diretório do script e digite o comando ./hello echo hello www.programicio.com exit 0
Vamos analisar o script. Na primeira linha do script, temos o shebang:
#!/bin/bash
Esse elemento informa ao shell qual subshell deve ser usada para executar o script. O shebang sempre começa com #!
, seguido pelo caminho da subshell. No exemplo acima, usamos /bin/bash
, mas poderia ser qualquer outra shell. Em princípio, o script pode não incluir o shebang e, em muitos casos, ainda funcionará. No entanto, se o usuário tentar executar o script sem o shebang em uma shell diferente de /bin/bash
, provavelmente haverá falha. Portanto, é melhor sempre adicionar o shebang.
Após o shebang, temos duas linhas de comentário:
# script que exibe no console a mensagem "hello www.programicio.com" # para executar, vá para o diretório do script e digite o comando ./hello
Comentários começam com o símbolo #
. Eles não são executados e servem apenas para dar ao leitor uma ideia do que o script ou suas linhas individuais fazem. Vale notar que a linha com o shebang também começa com #
, mas como é a primeira linha e é seguida por #!
, o sistema interpreta a linha como shebang, não como um comentário.
Depois dos comentários, temos os comandos que serão executados:
echo hello www.programicio.com exit 0
O comando echo
exibe a mensagem hello www.programicio.com
no console. O comando exit 0
encerra a execução do script com o código de saída 0. O código de saída é um valor que o script retorna ao sistema operacional após a conclusão. O valor 0 indica que o script foi executado com sucesso. Se o script falhar, o valor de saída será diferente de 0.
Executando o Script
Existem várias maneiras de executar um shell script. Aqui estão algumas delas:
- Tornar o script executável e executá-lo como um programa comum
- Executar o script como argumento do programa
bash
- Incluir o script na shell atual
Tornando o Script Executável
Vamos usar o primeiro método e executar nosso script hello
como uma aplicação executável:
programicio@Programicio:~$ chmod +x hello programicio@Programicio:~$ ./hello hello www.programicio.com
Nesse caso, o comando chmod +x hello
torna o script executável.
Executando o Script como Argumento do Bash
No segundo método, passamos o script como argumento para o comando bash
:
programicio@Programicio:~$ bash hello hello www.programicio.com
Incluindo o Script na Shell Atual
O terceiro método envolve incluir o script na shell atual. Isso pode ser útil se o script contiver variáveis que precisam estar ativas na shell atual. Existem duas maneiras de chamar o script dessa forma:
. nome_do_script
ou
source nome_do_script
Note que, se o script usar o comando exit para terminar, ele fechará a shell atual. Portanto, comente a última linha do script:
E chame o script usando um dos métodos:
programicio@Programicio:~$ . hello hello www.programicio.com programicio@Programicio:~$ source hello hello www.programicio.com