Erro ao executar arquivo shell script (interpretador incorreto: Arquivo ou diretório inexistente [RE

1. Erro ao executar arquivo shell script (interpretador incorreto: Arquivo ou diretório inexistente [RE

Augusto Schettini
augustoschettini

(usa Ubuntu)

Enviado em 03/08/2024 - 12:26h

Fala galera, tudo bem?

Estou tentando resolver um problema aqui rs

Seguinte, criei um arquivo Shell Script para facilitar a instalação e configuração de alguns programas, uma vez que terei que repetir esse processo em diversas máquinas rs

Estou usando o Ubuntu Versão 20.04.6 LTS

Criei o arquivo com extensão .sh pelo notepad++ no windows e copiei esse para um pendrive, o erro é o seguinte:
Quando eu copio o arquivo para a máquina onde ele será executado ele dá o erro, mesmo criando o arquivo pelo linux em outro computador, também dá o mesmo erro.

bash: ./arquivo.sh: /bin/bash^M: interpretador incorreto: Arquivo ou diretório inexistente 


O problema não é o arquivo .sh pois se eu abrir o mesmo pelo editor de texto, copiar o conteúdo e via terminal executar
nano nomedoarquivo 
salvar e dar permissão de execussão
chmod -x nomodoarquivo 
e depois executar
./nomedoarquivo 
ele executa normalmente sem erros.

Já usei o chmod 777, chmod a+xr, chmod a+wxr e etc, no arquivo copiado de outro computador dá o erro
Também executei o chown mudando o usuario e grupo para root, mas mesmo assim não deu certo.

Alguém sabe como resolver esse problema?

A ideia é simples criar um arquivo .sh que eu possa copiar e usar em qualquer outro equipamento


  


2. MELHOR RESPOSTA

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 03/08/2024 - 13:16h

Olá! Para remover os caracteres ^M sem instalar um novo programa, você pode usar o comando tr. Aqui está a forma de usar:

tr -d '\r' < arquivo.in > arquivo.out 


Onde arquivo.in é o nome do arquivo que contém os caracteres ^M e arquivo.out é o nome do arquivo de saída que você deseja criar.

Espero que isso seja útil para você!

3. Re: Erro ao executar arquivo shell script (interpretador incorreto: Arquivo ou diretório inexistente [RE

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 03/08/2024 - 12:26h

Olá! O erro ocorre devido ao caractere ^M que indica um problema de formatação na quebra de linha do script. Para corrigir, você pode usar o comando dos2unix para remover esses caracteres:

[b]dos2unix arquivo.sh[\/b] 


Depois disso, dê permissão de execução e tente rodar o script novamente. Certifique-se também de que o arquivo está salvo com a codificação correta (UTF-8) e que o interpretador bash está instalado no sistema.

Espero que isso ajude a solucionar o problema!


4. Erro ao executar arquivo shell script (interpretador incorreto: Arquivo ou diretório inexistente) [R

Augusto Schettini
augustoschettini

(usa Ubuntu)

Enviado em 03/08/2024 - 13:16h


alexabolada escreveu:

Olá! O erro ocorre devido ao caractere ^M que indica um problema de formatação na quebra de linha do script. Para corrigir, você pode usar o comando dos2unix para remover esses caracteres:

dos2unix arquivo.sh[\/b] 


Depois disso, dê permissão de execução e tente rodar o script novamente. Certifique-se também de que o arquivo está salvo com a codificação correta (UTF-8) e que o interpretador bash está instalado no sistema.

Espero que isso ajude a solucionar o problema!


Amigo muito obrigado pela dica, entendi aqui que toda vez que crio o arquivo pelo notepad++ ele cria esses caracteres [b]^M


Procurei aqui uma segunda forma de remover os caracteres sem precisar instalar um novo programa rs

 tr -d '\r' < arquivo.in > arquivo.out  


arquivo.in com o nome do arquivo que contém os caracteres ^M e arquivo.out com o nome do arquivo que deseja criar como saída.

Testei aqui e deu certo!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts