Encontre o caminho do diretório kermit para colocar após shebang (#!) no script

0

Eu usei o script a seguir para se conectar ao meu dispositivo serial usando kermit :

#!/usr/bin/kermit
set port /dev/ttyUSB8
set speed 115200
set carrier-watch off
set flow-control none
set prefixing all
OUTPUT ifconfig

Mas isso gera o seguinte erro:

bash: ./test.script: /usr/bin/kermit^M: bad interpreter: No such file or directory

Eu suspeito que o caminho que eu dei depois da shebang poderia ser o problema. Como faço para encontrar o caminho certo para que meu script funcione?

    
por skrowten_hermit 30.03.2017 / 15:09

2 respostas

2

Após o shebang você tem o comando para ser executado. O nome do script será o segundo argumento. Então, no caso de bash, você tem #!/bin/bash , o que equivale a chamar bash ./script . No seu caso, o comando é equivalente a:

sudo /usr/bin/kermit ./test.script

Você deve verificar se o kermit está instalado e se está em /usr/bin , por exemplo. usando o comando which kermit .

EDITAR

Ah. agora eu encontrei o erro. Você tem um ^ M (CR) na primeira linha. Vá para a primeira linha do script, remova o final da linha e refaça. Isso no Unix / Linux. DOS / Windows adicionará o ^ M, que não é bem interpretado.

    
por 30.03.2017 / 15:17
1

O ^M é um retorno de carro que sugere que seu script pode ter sido composto em uma máquina Windows.

Para remover os retornos de carro, deixando novas linhas, faça:

perl -pi.old -e 's{\r}{}' file

Isso realiza uma atualização no local, primeiro fazendo o backup do arquivo original como ".old".

    
por 30.03.2017 / 15:27