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?
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?
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.
Usando ./compactador
:
./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.#! /bin/bash
no início, que informa ao sistema que o script deve ser executado usando o interpretador Bash.Usando bash compactador.sh
:
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.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:
Torne o script executável:
chmod +x compactador
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:
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!