Resolva Problema Bin/Bash^M Bad Intérprete Não Esse arquivo ou diretório

Resolva Problema Bin/Bash^M Bad Intérprete Não Esse arquivo ou diretório
Enquanto trabalhamos em diferentes plataformas de sistema operacional, encontramos um pacote de erros, eu.e., executando alguma codificação ou instalação. Quando trabalhamos em Bash, podemos encontrar centenas de erros relacionados à festa. Você pode acreditar que há um problema de permissões e tente executar a instrução CHMOD 777 para fornecer ao arquivo de script de Bash todos os direitos, mas isso não resolverá o problema. É iniciado pelo retorno do carruagem "m". O símbolo de alimentação de linha é usado no Linux para indicar o acabamento de uma linha; Enquanto isso, a combinação de dois caracteres CR LF é usada no Windows. Seu documento tem as extremidades da linha do Windows, o que faz o Linux ficar perplexo. Vamos ver as soluções para isso.
$ /bin /bash^m: intérprete ruim: nenhum arquivo ou diretório

Neste tutorial, veremos como corrigir o problema que ocorre ao executar o Bash ou.Arquivo SH em um ambiente Linux. O pobre intérprete é outro nome para este erro. Você pode acreditar que esta é uma restrição de permissões e tente usar o comando chmod +x para conceder o arquivo de script shell todos os privilégios necessários, mas isso não resolverá o problema. O script especifica que seria executado usando o shell "/bin/bash^m". Não existe esse arquivo; Em vez disso, "/bin/bash" é usado. O caractere “^m” significa Retorno de Carruagem.

O caractere de alimentação de linha é frequentemente usado no Linux para indicar o final de uma linha, enquanto a sequência de dois caracteres Cr/LF é frequentemente usada em sistemas operacionais semelhantes ao Windows. O arquivo contém marcadores de finais de linha do Windows, o que faz o Linux ficar perplexo. Em um arquivo de script de bash, como posso ver caracteres de codificação CR ou LF? Você também pode ver os caracteres finais da linha como LFCR ou LFCR BY VIEW → Mostrar símbolo → Mostrar final da linha. Um exemplo de um arquivo com caracteres CR ou LF é mostrado abaixo:

Os monitores acima e abaixo não estão disponíveis no editor básico do bloco de notas; Em vez disso, você deve instalar o bloco de notas ++, uma versão avançada do bloco de notas. Para corrigir o erro no sistema operacional do Windows, abra o arquivo de script Bash no editor do bloco de notas ++ e depois vá para a guia Preferências através do menu Configurações como abaixo. Feche a janela depois de escolher o Unix/OSX como o formato. Depois, salve e feche o arquivo.

Preferências → Novo Documento/Diretório Padrão TAB → Configuração → Preferências → Novo Documento/Diretório Padrão Guia → Escolha Novo Formato de Documento →

Usando o comando de editor de fluxo

No UNIX, o comando sed é responsável por um editor de linha a linha e pode executar uma ampla gama de procedimentos de arquivo, como varredura ou pesquisa, encontro e substituição, inserção e exclusão. O comando sed é mais comumente usado em sistemas operacionais do tipo UNIX e Linux para substituir ou encontrar e substituir. Exclua os personagens de CR que não deveriam estar lá. Você pode usar (sed) o comando abaixo na imagem para realizar esta tarefa:

Usando o utilitário DOS2UNIX

Dos2Unix é um programa que converte DOS para Unix. Para resolver o script do shell para os sistemas operacionais do Unix-Linux, instalar o utilitário DOS2UNIX e executar o comando DOS2UNIX, dado abaixo:

$ dos2unix nome do arquivo.sh

Se você receber o comando não encontrado erro, primeiro instale o utilitário DOS2UNIX, executando o comando abaixo de um shell da linha de comando Linux:

$ sudo apt-get install Dos2unix

Você pode usar o comando unix2dos para converter o arquivo de volta ao formato DOS.

Em um arquivo de script de bash, como posso visualizar os caracteres CR LF? Tenter arquivo, arquivo -k e, finalmente. Para a linha Linux/Unix "CR", ele simplesmente imprime o texto.

Você pode instalá -lo no sistema operacional MacOS usando o homebrew da seguinte forma:

$ Brew Install Dos2Unix

Em seguida, faça o comando execute o comando abaixo para converter o arquivo no formato DOS para formato Unix:

$ dos2unix nome do arquivo.sh

Qual é o objetivo do comando dos2unix

O DOS2UNIX é um utilitário que traduz finais de linha DOS CR (retorno do carro) +LF (Feed de linha) para codificações de linha UNIX em arquivos de texto LF (Feed de linha). Ele também pode converter entre os caracteres UTF-16 e UTF-8. Você pode traduzir do Unix para o DOS enquanto utiliza o comando Unix2Dos. Com expectativa, isso resolverá o problema que você estava tendo.

Usando o editor Vim

Se você não possui o utilitário DOS2UNIX instalado no seu sistema operacional Linux, você pode usar o editor VIM para transformar o formato do script do seu shell em UNIX. Use a instrução seguinte para abrir o arquivo no VIM Editor:

VI nome do arquivo.sh

OU

nome de arquivo vim.sh

Se você não está no diretório ou pasta atual onde seu script de arquivo bash está localizado, digite o caminho completo do diretório, como eu fiz. Mas se você estiver no mesmo diretório ou pasta, poderá executar o comando diretamente como dado acima. Vim é uma forma progressiva do editor VI. Os comandos VI e Vim fazem o mesmo trabalho. Execute o comando embaixo para alterar o formato do arquivo para o sistema operacional UNIX:

$: set ff = Unix

Em seguida, usando os comandos abaixo, todas as alterações são salvas e fecham o arquivo no editor, escreva o arquivo e feche -o. Agora você terminou. Você pode converter o formato do seu script de shell para unix por qualquer uma das abordagens descritas anteriormente. Esperamos que as informações acima tenham ajudado a resolver seu problema.

$: wq!

Conclusão

Isso se trata do uso de métodos simples para resolver o problema “Bin/Bash^m: Intérprete ruim: nenhum arquivo ou diretório”. Todos os exemplos usados ​​aqui são simples e fáceis de implementar. Esperamos que você goste e aprenda mais com isso.