Por que usar o bash no script de execução? [duplicado]

2

Em uma pergunta anterior, fui sugerido para executar:

sudo bash start-dfs.sh

porque não

sudo start-dfs.sh

Quero dizer, que diferença faz o bash ?

    
por gsamaras 28.01.2016 / 19:51

1 resposta

1

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:

  1. 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
    
  2. 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.
por Jacob Vlijm 28.01.2016 / 20:06