Bash Script – Palavras Reservadas
Neste artigo irei escrever, sobre as palavras reservadas na linguagem de programação BASH.
Como qualquer linguagem de programação o BASH reserva algumas palavras que têm um significado interno. Que é usado pelo BASH, para identificar/sintetizar o que nós escrevemos nos nossos scripts e perceber aquilo que queremos realizar com um determinado código.
O BASH tem uma pequena lista de palavras reservadas, em comparação com outras linguagens com (PHP, Python,etc), são bem poucas, o que nos facilita quando escrevemos scripts.
Abaixo listo as palavras reservadas do BASH:
!
case
coproc
do
done
elif
else
esac
fi
for
function
if
in
select
then
until
while
{
}
time
[[
]]
Como sendo palavras reservadas internas da linguagem, não podemos escrever estas palavras pretendendo dar às mesmas outro significado.
Não podemos criar VARIÁVEIS, ARRAYS, FUNÇÕES, usando nenhuma destas palavras internas. Que leva a erros de sintaxe pois o BASH irá tentar realizar a tarefa predefinida para cada uma destas palavras. Ao perceber que a sintaxe não está correta ele gera erros de interpretação. Isto é norma para qualquer linguagem de scripting e também usado pelos compiladores de linguagens compiladas como o C.
Possíveis ERROS – Ao usar estas palavras de forma indevida
Criando função com uma palavra reservada
#!/bin/bash
# Palavras reservadas em BASH
function esac() {
a=b
echo escrevendo na função esac
# Este nome de função não está bem, pois usa o mesmo nome de uma palavra reservada
}
# Chamar a função esac
esac
Claro que ao executar este script temos um erro de sintaxe:
miguel@terra:~/bash/Palavras Reservadas$ ./palavras_reservadas_ex_1.sh
./palavras_reservadas_ex_1.sh: linha 13: erro de sintaxe próximo ao token inesperado `esac'
./palavras_reservadas_ex_1.sh: linha 13: `esac'
miguel@terra:~/bash/Palavras Reservadas$
Quando declaramos a função e não usamos a palavra reservada “function”:
#!/bin/bash
# Palavras reservadas em BASH
esac() {
a=b
echo escrevendo na função esac
# Este nome de função não está bem, pois usa o mesmo nome de uma palavra reservada
}
# Chamar a função esac
esac
Temos o seguinte erro de sintaxe:
miguel@terra:~/bash/Palavras Reservadas$ ./palavras_reservadas_ex_1.sh
./palavras_reservadas_ex_1.sh: linha 5: erro de sintaxe próximo ao token inesperado `esac'
./palavras_reservadas_ex_1.sh: linha 5: `esac() {'
miguel@terra:~/bash/Palavras Reservadas$
Que nos dá a perceber, que o BASH estava a tentar criar as condições para o comando esac, mas nós estaríamos a pretender declarar e usar uma função.
Criando VARIÁVEIS com palavra reservada
#!/bin/bash
# Palavras reservadas em BASH
# Criando variável com o nome de uma palavra reservada
[[=b
echo $[[
while=b
echo $while
Quando executamos este script temos o seguinte output:
miguel@terra:~/bash/Palavras Reservadas$ ./palavras_reservadas_ex_2.sh
./palavras_reservadas_ex_2.sh: linha 6: [[=b: comando não reconhecido
./palavras_reservadas_ex_2.sh: linha 7: encontrado EOF inesperado enquanto procurava por `]' correspondente
./palavras_reservadas_ex_2.sh: linha 11: erro de sintaxe: fim prematuro do arquivo
miguel@terra:~/bash/Palavras Reservadas$
Isto acontece novamente pelas mesmas razões.
O BASH ao encontrar um erro de sintaxe termina de imediato, não sendo importante se o resto do código está bem o mal formatado, isto é bom para evitar colisões de sintaxe.
Temos de ter em conta estas palavras reservadas, sempre que programamos em BASH. Não são muitas, mas são importantes e claro que desejamos sabe las, quando queremos programar em BASH.
Conclusão
As palavras reservadas de uma linguagem é importante, para percebermos a sua sintaxe. As linguagens de programação diferenciam se não só pela sua sintaxe, mas pela sua sintaxe com certeza. Não existem duas linguagens diferentes que tenham exatamente a mesma sintaxe.