У меня есть сценарий из книги Data Science at Command Line, Jeroen Janssens например,
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
и сохранил его как top-world-1.sh
С терминала Ubuntu 15.10 64bit я поставил команду ./top-words-1.sh, и я получил выходные данные [ ! d8]
./top-words-1.sh: line 1: $'\r': command not found
./top-words-1.sh: line 2: $'\r': command not found
Сразу же я догадался, что это вызвано несколькими строками, и я удаляю «\ n» места, чтобы сделать такое предложение
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
Но я получил [!d10 ]
: invalid number of lines
Я совершенно новый в программировании сценария bash. Не могли бы вы дать мне какие-нибудь советы? Спасибо
Следующие комментарии ниже:
проверено разрешениепроверено разрешение запущено с sudo
Это работает для меня. Попробуйте:
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
И это дает мне правильный ответ. Убедитесь, что вы не добавляете лишних (скрытых) символов в файл. Вы также можете скопировать / вставить команду в оболочку, чтобы убедиться, что она работает для вас.
запускает ваш скрипт с помощью команды: bash ./scriptname или chmod +x script, а затем: ./scriptname
команда не найдена, вероятно, означает, что она не является исполняемой.