“bash: warning” toda vez que inicia um terminal

3

Toda vez que inicia um terminal, recebo esta mensagem:

bash: warning: here-document at line 119 delimited by end-of-file (wanted 'EOF')

Acredito que eu tenha tentado instalar a pilha do Haskell recentemente e ela não parece ser instalada corretamente, pode ser que o aviso tenha aparecido, como mostrado desde então.

@George quando executar o comando isto é o que eu vejo no terminal, esta é a mesma linha que eu mencionei no o comentário anterior sobre a repetição.

@John Olá, estas são as últimas linhas que surgem quando se executa isso:

    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 Aqui está o que aparece:

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:~$
    
por peaks95 22.11.2017 / 23:37

2 respostas

2

Passo 1: Sintoma

O sintoma inicial foi a mensagem de erro:

bash: warning: here-document at line 119 delimited by end-of-file (wanted 'EOF')

Isso nos diz que o problema está na linha 119, mas infelizmente não nos diz qual arquivo estava sendo executado quando o problema ocorreu. Dependendo da configuração do sistema, um bash interativo pode executar qualquer um de um grande número de arquivos de inicialização.

Etapa 2: diagnóstico

Para descobrir quais linhas de quais arquivos de inicialização do bash estão causando um problema, pode-se executar:

PS4='+ $BASH_SOURCE:$LINENO:' bash -xlic ""

Isso inicia um shell de login bash interativo ( -i ) ( -l ) no modo de diagnóstico ( -x ) e executa um comando vazio ( -c "" ). O prompt bash PS4 está configurado para prefixar cada linha de saída com o arquivo e a linha que a causou.

Etapa 3: identificando o problema

Executando o comando de diagnóstico acima, encontramos:

+++ /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

Isso indica que o problema do documento aqui vem da linha 119 do arquivo /home/peaks/.bashrc

A seção relevante de .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"

Linha 119 cat >> ~/.bashrc <<EOF é um problema. Ele tenta modificar o arquivo .bashrc enquanto o arquivo está sendo executado. Nesse caso, ele teve o efeito de anexar novas definições de PATH ao final de .bashrc . Aparentemente, o arquivo acabou com um número grande o suficiente de tais declarações PATH para atrasar significativamente a inicialização do bash.

Etapa 4: remédio

O problema pode ser corrigido abrindo um editor e excluindo as linhas indesejadas. O Linux oferece uma escolha de editores. É garantido que o editor vi esteja presente nos sistemas POSIX, mas possui uma curva de aprendizado acentuada. nano está amplamente disponível e é bom para os recém-chegados porque é fácil de usar. Então, para resolver o problema, poderíamos executar:

nano ~/.bashrc

Em seguida, vá para as linhas problemáticas, exclua-as e salve o arquivo.

Como alternativa, podemos evitar ter que aprender um novo editor executando o seguinte comando:

sed -i.bak '119d; 130,$d' ~/.bashrc

Este comando atualiza ~/.bashrc no lugar, excluindo a linha 119 e excluindo da linha 130 o final do arquivo. Por segurança, uma cópia de backup do original ~/bashrc é salva como ~/.bashrc.bak .

    
por John1024 23.11.2017 / 22:01
1

Seu arquivo .bashrc está fora do que eu vejo, por favor, execute os seguintes comandos:

  1. Faça cópia de segurança:

    cp ~/.bashrc ~/.bashrc.newbak
    
  2. Abra-o no seu editor favorito e faça as seguintes alterações gedit ~/.bashrc e altere as seguintes linhas (de 119, acredito):

    1. Seu 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"
      
    2. Alterações a serem feitas, Remova todas, exceto a última linha de step: 2.1 acima:

      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"
      
    3. Salve e feche o editor.

  3. Verifique se .bashrc está ok:

    source ~/.bashrc
    
  4. Se a etapa 3 retornar erros, restaure a partir do backup com:

    cat ~/.bashrc.newbak > ~/.bashrc
    
por George Udosen 23.11.2017 / 06:08