I'estou aprendendo através deste tutorial a aprender bash scripts para automatizar algumas tarefas para mim. I'm conectando-se a um servidor usando putty.
O script, localizado em .../Documents/LOG
, é:
#!/bin/bash
# My first script
echo "Hello World!"
E executei o seguinte para ler/escrever/executar permissões
chmod 755 my_script
Então, quando eu digito ./my_script
, I'estou recebendo o erro dado no título.
Algumas perguntas semelhantes queriam vê-las, por isso acho que podem ajudar:
which bash
/bin/bash
e
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/bin/mh
Eu tentei adicionar o diretório atual ao PATH
, mas isso não't funciona...
Eu vi esse problema ao criar scripts no Windows env e depois portar para rodar em um ambiente Unix.
Tente executar o dos2unix
no script:
http://dos2unix.sourceforge.net/
Ou apenas reescreva o script no seu ambiente Unix utilizando o vi
e teste.
Unix usa diferentes terminações de linha para que possa't ler o arquivo que você criou no Windows. Portanto, ele está vendo o ^M como um personagem ilegal.
Se você quiser escrever um arquivo no Windows e depois port over, certifique-se de que seu editor está configurado para criar arquivos no formato UNIX.
No bloco de notas++, na parte inferior direita do ecrã, indica-lhe o formato do documento. Por padrão, ele dirá Dos\Windows
. Para o alterar, vá para
Se você usa Sublime Text no Windows ou Mac para editar seus scripts:
Clique em 'View > Line Endings > Unix' e save o arquivo novamente.