За последние несколько дней я объединил домашний каталог с рабочей установкой из 12.04 в старый домашний каталог, я считаю, что с установки 10.04 (это был чистый диск)
Я получил новый диск для загрузки и монтирования правильно, но когда я пытаюсь использовать записи .bashrc из установки 12.04, такие вещи, как следующий псевдоним:
alias banana='echo banana'
Он производит следующие ошибки:
-bash: $'\r': command not found
-bash: $'\r': command not found
-bash: $'\r': command not found
: invalid shell option name
-bash: $'\r': command not found
-bash: $'\r': command not found
: invalid shell option name
-bash: $'\r': command not found
-bash: $'\r': command not found
-bash: $'\r': command not found
-bash: $'\r': command not found
-bash: .bashrc: line 36: syntax error near unexpected token `$'in\r''
'bash: .bashrc: line 36: `case "$TERM" in
Я не могу найти текст, на который ссылаются в этом .bashrc-файл (он работает только тогда, когда я копирую его из / etc / skel, и даже тогда, добавив псевдоним и источник, затем удалив псевдоним и источник, он все равно производит ошибки. Единственный способ заставить Bash работать снова для повторного копирования файла из / etc / skel
Похоже, я не могу вносить какие-либо изменения в .bashrc, не вызывая этих ошибок. Я подозреваю, что это имеет какое-то отношение к readline или .inputr c, которые также имеют проблемы (хотя они, похоже, теперь решены). На данный момент в каталоге / home / user нет .inputrc.
Спасибо за любую помощь, которую вы можете дать!
Ошибка:
$'\r': команда не найденаозначает, что ваш файл (.bashrc) каким-то образом состоит из окончаний строк Windows (CRLF), а bash не распознает их, поэтому он терпит неудачу. Возможно, вы отредактировали этот файл в Windows?
Итак, вы должны преобразовать ваш поврежденный файл, чтобы использовать окончание строк в стиле Unix из CRLF в LF.
Этого можно достичь: dos2unix, например
dos2unix ~/.bashrc
Если у вас его нет, установите через apt-get install tofrodos.
В противном случае, если вы установили Vim, попробуйте: [!d8 ]
ex +'%!tr -d "\r"' -scwq ~/.bashrc
для нескольких файлов:
ex +'bufdo!%!tr -d \r' -scxa ~/.bash*
Примечание: команда :bufdo не является POSIX.
Если вы используя Vagrantfile, и это происходит как часть сценария инициализации, вы можете установить окончания строки на true для вашей оболочки, например
# Shell provisioner, see: https://www.vagrantup.com/docs/provisioning/shell.html
config.vm.provision "shell" do |s|
s.binary = true # Replace Windows line endings with Unix line endings.
s.path = "script.sh"
end
Файл кажется довольно грязным. Вы можете просто удалить файл и скопировать новый файл из /etc/skel:
rm ~/.bashrc
cp /etc/skel/.bashrc ~/.bashrc
Затем отредактируйте файл и убедитесь, что он сохранен с завершением строки UNIX.