Bash: #: comando não encontrado

2

Acabei de me mudar para o Arch Linux com o KDE há uma semana. Tudo funcionou bem até eu instalar ibus-unikey e ibus-qt , depois disso, sempre que abro konsole , aparece esse erro:

bash: #: command not found

Eu duvido que # seja um comando usual porque quando eu digito em konsole , nada acontece. Mas quando eu executo pacman -Ss # , muitas coisas aparecem.

Minha pergunta: qual é o comando # e o que devo fazer para corrigir esse erro?

Aqui estão meus .bashrc , .bash_profile e PATH

$ cat .bashrc
   #
   # ~/.bashrc
   #

   # If not running interactively, don't do anything
   [[ $- != *i* ]] && return
$ cat .bash_profile
   #
   # ~/.bash_profile
   #

   [[ -f ~/.bashrc ]] && . ~/.bashrc


   alias ls='ls --color=auto'
   PS1='[\u@\h \W]\$ '


$ echo $PATH
   /usr/local/texlive/2015/bin/x86_64-linux:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl

Adição 1: Como @terdon sugere, eu corro

$ grep -FH '\#' ~/.bashrc ~/.profile ~/.bash_profile ~/bash.login ~/.bash_aliases /etc/bash.bashrc /etc/profile /etc/profile.d/* /etc/environment 2>/dev/null

e não receba nada. Mas o comando posterior me dá

$ grep -P '(^|\s+)(\.|source) .' ~/.bashrc ~/.profile ~/.bash_profile ~/bash.login ~/.bash_aliases /etc/bash.bashrc /etc/profile /etc/profile.d/* /etc/environment 2>/dev/null
   /home/thuyenarc/.bash_profile:[[ -f ~/.bashrc ]] && . ~/.bashrc
   /etc/bash.bashrc:[ -r /usr/share/bash-completion/bash_completion   ] && . /usr/share/bash-completion/bash_completion
   /etc/profile:           test -r "$profile" && . "$profile"
   /etc/profile:   . /etc/bash.bashrc
   /etc/profile.d/locale.sh:    . "$XDG_CONFIG_HOME/locale.conf"
   /etc/profile.d/locale.sh:    . "$HOME/.config/locale.conf"
   /etc/profile.d/locale.sh:    . /etc/locale.conf

Inclusão 2: tentei renomear o arquivo .bashrc , em seguida, abra konsole , o erro desapareceu. Eu suspeito que os erros devem vir de .bashrc . Alguma idéia?

    
por macnguyen 04.02.2016 / 12:11

2 respostas

3

Esse erro significa que você tem um escape # (isso significa \# ) em um dos arquivos de inicialização do bash. Como ele não parece estar em ~/.bashrc ou ~/.bash_profile , ele precisa estar em um dos outros arquivos que o bash lê quando é carregado. Para ter certeza, basta pesquisar em todos eles 1 :

grep -FH '\#' ~/.bashrc ~/.profile ~/.bash_profile ~/bash.login \
              ~/.bash_aliases /etc/bash.bashrc /etc/profile \
              /etc/profile.d/* /etc/environment 2>/dev/null

Isso deve mostrar que um dos arquivos listados acima contém \# . Edite o arquivo, remova-o e tudo deve funcionar.

Se o comando não retornar nenhuma saída, isso significa que um desses arquivos está obtendo outro arquivo — não-padrão — e esse é o arquivo que apresenta o erro. Se este for o caso, edite sua pergunta e adicione a saída deste comando:

grep -P '(^|\s+)(\.|source) .' ~/.bashrc ~/.profile ~/.bash_profile ~/bash.login \
                              ~/.bash_aliases  /etc/bash.bashrc /etc/profile \
                              /etc/profile.d/* /etc/environment 2>/dev/null

Isso deve imprimir todas as instâncias de fornecimento de outro arquivo e deve nos apontar na direção certa.

Mais geralmente, # não é um comando, é um comentário. Qualquer coisa depois é simplesmente ignorada por bash . Então, quando você executa pacman -Ss # , na verdade você está executando pacman -Ss sozinho e é por isso que você obtém tantos resultados.

1 Alguns desses arquivos são irrelevantes aqui. Por exemplo, ~/.profile é ignorado se ~/.bash_profile existir e /etc/profile não for lido quando você abrir um novo terminal, mas você também pode pesquisar por todos eles apenas no caso.

    
por 04.02.2016 / 12:34
2

Pode ser que, de alguma forma, a opção BASH-shell interactive_comments tenha sido desativada. Você pode replicar o comportamento com:

~ $ shopt -u interactive_comments
~ $ # 
# command not found
~ $

Você pode determinar se está ativado ou desativado:

$ shopt interactive_comments

Se a saída estiver "on", então esta não é a origem do seu problema. Se estiver "desligada", você deve grep seus arquivos (/ u / tedron's answer) para procurar onde isto está sendo definido.

    
por 04.02.2016 / 15:04

Tags