Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 12633|Resposta: 0

[Linux] /bin/bash^M: bad interpreter: No such file or directory

[Copiar link]
Publicado em 13/06/2020 22:40:35 | | | |
Ao executar um script shell, o seguinte erro é retornado:

-bash: ./log_job.sh: /bin/bash^M: interpretador ruim: Não existe esse tipo de arquivo ou diretório
Causas do erro:

.sh script é escrito no sistema Windows, então pode haver caracteres invisíveis; pelo prompt de erro acima, é muito provável que o arquivo de script esteja no formato DOS, ou seja, o final de cada linha seja identificado por \r\n, e seu código ASCII seja 0x0D, 0x0A respectivamente.

O erro exibido ao executar um script shell se deve principalmente ao fato de que o arquivo de script shell está no formato DOS, ou seja, o final de cada linha é identificado por \r\n, e o final do arquivo em formato UNIX é identificado por \n.

Nota especial: ^M não é o ^ e a letra M produzidos pelo shift de tecla + 6, é um caractere, seu ASCII é 0x0D, a forma de gerá-lo é pressionar primeiro CTRL+V e depois enter (ou CTRL+M)


solução

Existem várias maneiras de verificar se o arquivo de script está em formato DOS ou UNIX.

(1) Verifique o formato do script: cat -A nome do arquivo Pelos resultados de exibição, pode-se julgar que a linha de arquivo terminando no formato dos é ^M$, e a linha de arquivo terminando no formato unix é $.



(2) Modificar o formato do script: vi filename para abrir o arquivo e executar:set ff=unixDefina o arquivo para unix e execute:wq, salvo no formato UNIX.

  (3) Verifique o formato do script: cat -A nome do arquivo Pelo resultado de exibição, você pode julgar que a linha de arquivo terminando no formato dos é ^M$, e a linha do arquivo terminando no formato unix é $.







Anterior:SSIS Tutorial 1 Introdução aos Serviços de Integração do SQL Server
Próximo:Divisão e exclusão de logs Nginx
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com