Executar um script com Bash [duplicado]

-1

Eu tenho um script do livro Data Science na Command Line, Jeroen Janssens como este

curl -s http://www.gutenberg.org/cache/epub/76/pg76.txt |
 tr '[:upper:]' '[:lower:]' | grep -oE '\w+' | sort |
 uniq -c | sort -nr | head -n 10

e salvou como top-world-1.sh

Do terminal do Ubuntu 15.10 64bit, eu coloquei um comando ./top-words-1.sh e eu tenho saídas de saída

./top-words-1.sh: line 1: $'\r': command not found
./top-words-1.sh: line 2: $'\r': command not found

De uma vez, imaginei que foi causado por várias linhas e removi '\ n' lugares para fazer uma frase como esta

curl -s http://www.gutenberg.org/cache/epub/76/pg76.txt |tr '[:upper:]' '[:lower:]' | grep -oE '\w+' | sort |uniq -c | sort -nr | head -n 10

Mas eu tenho

: invalid number of lines

Sou totalmente novo em programar o script bash. Você poderia por favor me dar algum conselho? Agradecemos antecipadamente

Após comentários abaixo, tenho:

  • permissão verificada

  • adicionou #!/bin/bash na parte superior do arquivo e obteve a saída bash: ./top-words-1.sh: /bin/bash^M: bad interpreter: No such file or directory
  • executado com o sudo
por Bryan 21.11.2015 / 19:27

3 respostas

0

Eu usei o comando dos2unix para resolver meu problema. Obrigado @muru pelo seu comentário. O motivo é explicado por @steeldriver

    
por Bryan 03.12.2015 / 10:46
1

Funciona para mim. Experimente:

cat > script.sh <<EOF
#! /bin/bash
 curl -s http://www.gutenberg.org/cache/epub/76/pg76.txt |tr '[:upper:]' '[:lower:]' | grep -oE '\w+' | sort |uniq -c | sort -nr | head -n 10
EOF
 chmod +x script.sh
 ./script.sh

E isso me dá a resposta certa. Certifique-se de não adicionar nenhum caractere extra (oculto) ao arquivo. Você também pode copiar / colar o comando no shell para ter certeza de que funciona para você.

    
por Julen Larrucea 21.11.2015 / 20:17
0

execute seu script com o comando: bash ./scriptname ou chmod +x script , em seguida: ./scriptname

O comando

não encontrado provavelmente significa que não é executável.

    
por Brooke Fogg-Wolfe 21.11.2015 / 20:22