Não foi encontrado erro ao executar um script com 'sh'

0

Eu tenho um script de shell simples:

#!/bin/bash

var="foo"
echo $var

Quando eu o executo, usando sh shell.sh ( shell sendo seu nome de arquivo, recebo o seguinte erro:

: not found: 2: shell.sh:

O que isso significa?

    
por James Trotter 02.11.2013 / 20:44

1 resposta

2

Já experimentou sh ./shell.sh em vez de sh shell.sh ?
(por motivos de segurança, o diretório atual . NUNCA está na variável PATH)

Além disso, a primeira linha do script #!/bin/bash só é necessária se o script for executado sozinho,
como ./shell.sh (não se esqueça de fazer chmod a+x shell.sh nesse caso)

Finalmente, o comando sh chama o shell de traço, não o shell de bash, portanto, seria melhor invocar scripts bash como bash ./shell.sh em vez de sh ./shell.sh

Cuidado com os finais de linha:
O Bash não aceita \ r \ n (CRLF) como terminações de linha (que é o estilo do windows).
Apenas \ n (LF) é permitido.

    
por thom 02.11.2013 / 21:05