Каждый раз при запуске терминала я получаю это сообщение:
bash: warning: here-document at line 119 delimited by end-of-file (wanted `EOF')
Я полагаю, что недавно пытался установить стек Haskell, и он, похоже, не устанавливался правильно, это может быть в том месте, где появилось предупреждение из того, что он показывает только после этого.
@George при запуске команды это то, что я вижу в терминале, это та же строка, о которой я упоминал в предыдущем комментарии к repeat.
@Джон Привет, вот последние несколько строк, которые появляются при запуске:
r libreoffice loweb lobase localc
++++ /etc/bash_completion.d/libreoffice.sh:110:unset _def _dir _file _nosp _minusdd _minusdf
+++ /usr/share/bash-completion/bash_completion:1984:unset i _blacklist_glob
+++ /usr/share/bash-completion/bash_completion:1987:[[ /usr/share/bash-completion/bash_completion != \/\h\o\m\e\/\p\e\a\k\s/.bash_completion ]]
+++ /usr/share/bash-completion/bash_completion:1987:[[ -r /home/peaks/.bash_completion ]]
+++ /usr/share/bash-completion/bash_completion:1989:unset -f have
+++ /usr/share/bash-completion/bash_completion:1990:unset have
+++ /usr/share/bash-completion/bash_completion:1992:set +v
+++ /usr/share/bash-completion/bash_completion:1993:unset BASH_COMPLETION_ORIGINAL_V_VALUE
bash: warning: here-document at line 119 delimited by end-of-file (wanted `EOF')
++ /home/peaks/.bashrc:119:cat
+ /home/peaks/.profile:20:PATH=/home/peaks/bin:/home/peaks/.local/bin:/home/peaks/bin:/home/peaks/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
@ John1024 Вот что появляется:
peaks@system64:~$ awk 'NR==119,NR==130' /home/peaks/.bashrc
cat >> ~/.bashrc <<EOF
export PATH="$HOME/.cabal/bin:/opt/cabal/1.22/bin:/opt/ghc/7.10.3/bin:$PATH"
export PATH="/home/peaks/.cabal/bin:/opt/cabal/1.22/bin:/opt/ghc/7.10.3/bin:/home/peaks/bin:/home/peaks/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin"
peaks@system64:~$
Первоначальным симптомом было сообщение об ошибке:
bash: warning: here-document at line 119 delimited by end-of-file (wanted `EOF')
Это говорит нам о том, что проблема в строке 119, но, к сожалению, не говорит нам, какой файл был запущен когда возникла проблема. В зависимости от конфигурации системы, интерактивный bash может запускать любой из большого количества файлов запуска.
Чтобы выяснить, какие строки из файлов запуска bash вызывают проблему, можно выполнить:
PS4='+ $BASH_SOURCE:$LINENO:' bash -xlic ""
Запустится интерактивный (-i
) оболочка bash login (-l
) в режиме диагностики (-x
) и запускает пустую команду (-c ""
). Приглашение bash PS4
настроено на добавление к каждой строке вывода файла и строки, вызвавшей его.
Запустив указанную выше диагностическую команду, мы обнаружили:
+++ /usr/share/bash-completion/bash_completion:1993:unset BASH_COMPLETION_ORIGINAL_V_VALUE
bash: warning: here-document at line 119 delimited by end-of-file (wanted `EOF')
++ /home/peaks/.bashrc:119:cat
+ /home/peaks/.profile:20:PATH=/home/peaks/bin:/home/peaks/.local/bin:/home/peaks/bin:/home/peaks/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
Это указывает на то, что проблема в данном документе возникла из строки 119 файла /home/peaks/.bashrc
]
Соответствующий раздел .bashrc
:
cat >> ~/.bashrc <<EOF
export PATH="$HOME/.cabal/bin:/opt/cabal/1.22/bin:/opt/ghc/7.10.3/bin:$PATH"
export PATH="/home/peaks/.cabal/bin:/opt/cabal/1.22/bin:/opt/ghc/7.10.3/bin:/home/peaks/bin:/home/peaks/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin"
Строка 119 cat >> ~/.bashrc <<EOF
является проблемой. Он пытается изменить файл .bashrc
во время его выполнения. В этом случае это привело к добавлению новых определений PATH в конец .bashrc
. По всей видимости, в файле оказалось достаточно большого количества таких операторов PATH, чтобы значительно задержать инициализацию bash.
Проблема может быть исправлена открытием редактора и удалением ненужных строк. Linux предлагает выбор редакторов. Редактор vi
гарантированно присутствует в системах POSIX, но у него крутая кривая обучения. nano
широко доступен и хорош для новичков, потому что он прост в использовании. Итак, чтобы решить проблему, мы могли бы выполнить:
nano ~/.bashrc
, а затем перейти к строкам проблемы, удалить их и сохранить файл.
В качестве альтернативы, мы можем избежать необходимости изучать новый редактор, выполнив следующую команду:
sed -i.bak '119d; 130,$d' ~/.bashrc
Эта команда обновляет ~/.bashrc
на месте, удаляя строку 119 и удаляя из строки 130 конец строки. файл. В целях безопасности резервная копия оригинала ~/bashrc
сохраняется как ~/.bashrc.bak
.
Ваш файл .bashrc
не совпадает с тем, что я вижу, выполните следующие команды:
Сделайте резервную копию:
cp ~/.bashrc ~/.bashrc.newbak
Откройте его в своем любимом редакторе и внесите следующие изменения gedit ~/.bashrc
и измените следующие строки (из 119, я считаю):
Ваш bashrc:
export PATH="$HOME/.cabal/bin:/opt/cabal/1.22/bin:/opt/ghc/7.10.3/bin:$PATH"
export PATH="/home/peaks/.cabal/bin:/opt/cabal/1.22/bin:/opt/ghc/7.10.3/bin:/home/peaks/bin:/home/peaks/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin"
export PATH="/home/peaks/.cabal/bin:/opt/cabal/1.22/bin:/opt/ghc/7.10.3/bin:/home/peaks/bin:/home/peaks/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin"
Изменения, которые необходимо внести, Удалить все, кроме последней строки из step: 2.1
выше:
export PATH="/home/peaks/.cabal/bin:/opt/cabal/1.22/bin:/opt/ghc/7.10.3/bin:/home/peaks/bin:/home/peaks/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin"
Сохраните и закройте редактор.
[тысяча сто двадцать девять] Проверьте, исправен ли .bashrc
:
source ~/.bashrc
Если шаг 3 возвращает ошибки, восстановите их из резервной копии с помощью:
cat ~/.bashrc.newbak > ~/.bashrc