Traço agindo por motivo desconhecido

1

Eu reiniciei minha máquina Kubuntu - no menu leave->restart , se isso é importante. Normalmente, minhas janelas de terminal são ativadas automaticamente após a reinicialização, mas desta vez meu aviso estava errado e um monte de outras coisas bizarras.

Agora / bin / sh é um link para / bin / dash e traço parece ter sido carregado, mas de repente é muito mais burro do que era antes da reinicialização. Agora ele não reconhece o que é shopt . Quando tento ponto executar meu perfil ( . ~/.bash_profile ) recebo erro como /bin/sh: 28: /etc/bash_completion: [[: not found . Na linha de comando, a conclusão do comando não funciona nem no up & teclas para baixo para o histórico de comandos.

Eu não baixei nenhum pacote que deveria ter mexido com isso. Existe uma razão válida para isso começar a acontecer de repente?

Agora eu executei /bin/bash das linhas de comando dos meus terminais e tudo parece estar bem, mas isso não explica o que está errado com dash . Além disso, bash é supostamente mais pesado que o traço e, como eu abro 20 ou mais terminais, gostaria de evitar essa sobrecarga, se for verdade.

Obrigado por qualquer informação sobre isso.

    
por Newton Falls 28.12.2012 / 03:50

1 resposta

2

Você não pode estar usando o dash todo esse tempo:

  • O traço não consegue entender [[ , pois é um dos comandos internos do Bash.

  • O Dash não suporta a conclusão de guias.

  • O Dash não suporta teclas de seta (edição, histórico).

( Fonte )

A única explicação possível é que seu shell padrão foi alterado de alguma forma. Obviamente, não posso saber como isso aconteceu, mas só consigo pensar em duas maneiras:

  • Algo editou /etc/passwd e substituiu seu shell padrão. Isso é altamente improvável.

  • Você estava acessando o Bash por meio de um link simbólico (provavelmente /bin/sh ), e uma atualização recente definiu o link simbólico como seu destino padrão.

Embora seja verdade que o Bash é mais pesado que o Dash, isso não deve ser um problema com os terminais (para o que o Bash foi projetado).

No entanto, os shells não interativos ainda devem usar o Dash por padrão (e é por isso que /bin/sh deve apontar para Dash).

    
por 28.12.2012 / 04:41