Um script em qualquer idioma (interpretado), como bash
ou python
, precisa ser "interpretado" pelo intérprete da linguagem correspondente.
No Linux, isso pode ser feito de diferentes maneiras:
-
O interpretador é "solicitado" para executar o script incluindo a linguagem no comando para executar o script:
<language> <script>
ou no seu exemplo:
sudo bash start-dfs.sh
-
O script é executável e tem a permissão para "pedir" ao próprio intérprete que execute o código dentro do script. do seu exemplo:
sudo start-dfs.sh
Neste caso, o script deve iniciar com shebang , caso contrário, não há informações sobre qual interpretador chamar, como:
#!/bin/bash
ou:
#!/usr/bin/env python
Notas
- Caso a primeira opção seja usada, as informações de idioma no comando sempre anularão uma possível publicação, não importando se o script é executável ou não.
- A extensão em um script (
.sh
,.py
etc) deixa claro que tipo de script é, mas não desempenha nenhuma função na execução de um script, ao contrário do Windows.