Eu usei o comando dos2unix
para resolver meu problema. Obrigado @muru pelo seu comentário. O motivo é explicado por @steeldriver
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:
#!/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
Eu usei o comando dos2unix
para resolver meu problema. Obrigado @muru pelo seu comentário. O motivo é explicado por @steeldriver
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ê.
execute seu script com o comando: bash ./scriptname
ou chmod +x script
, em seguida: ./scriptname
não encontrado provavelmente significa que não é executável.