1
resposta

Precisei usar o .sh

Quando utilizei o comanndo ./compactador não consegui, pois iniformava que não conseguia executar, requeria um arquivo não encontrado, porém quando usei o compactador.sh e busquei pelo bash consegui. Qual a diferença?

1 resposta

Oi Danilo!

Entendo a sua dúvida. Vamos lá! A diferença entre usar ./compactador e compactador.sh com bash está relacionada ao modo como você está tentando executar o script e às permissões do arquivo.

  1. Usando ./compactador:

    • Quando você tenta executar o script com ./compactador, o sistema espera que o arquivo compactador tenha permissões de execução. Para isso, você precisa ter usado o comando chmod +x compactador para torná-lo executável.
    • Além disso, o script deve ter a linha #! /bin/bash no início, que informa ao sistema que o script deve ser executado usando o interpretador Bash.
  2. Usando bash compactador.sh:

    • Quando você usa bash compactador.sh, você está explicitamente chamando o interpretador Bash para executar o script. Nesse caso, não é necessário que o arquivo tenha permissões de execução, pois o Bash está sendo chamado diretamente para interpretar o script.

Exemplo Prático

Vamos supor que você tenha um script chamado compactador com o seguinte conteúdo:

#! /bin/bash
echo "Script executado com sucesso!"

Para executá-lo usando ./compactador, você deve seguir estes passos:

  1. Torne o script executável:

    chmod +x compactador
    
  2. Execute o script:

    ./compactador
    

Se você não tornar o script executável, ao tentar ./compactador, você verá um erro de permissão.

Por outro lado, para executar o mesmo script usando bash compactador.sh, você pode fazer o seguinte:

  1. Execute o script diretamente com o Bash:
    bash compactador.sh
    

Neste caso, mesmo que o arquivo compactador.sh não tenha permissões de execução, o Bash irá interpretá-lo e executá-lo.

Bons estudos!