Terminal fecha após inserir um comando não existente

3

Isso parece ser um bug, mas não tenho certeza de qual pacote reportá-lo. Tente isto:

  • Abra o terminal gnome
  • shift - ctrl - t (abre uma nova aba)
  • tipo: foo foo &
  • A guia está fechada

O comportamento correto seria Command not found .

Isso acontece toda vez no gnome-terminal. No xterm (sem abas, é claro) ele funciona aleatoriamente - talvez 2 ou 3 tentativas.

    
por cos 31.12.2013 / 14:48

2 respostas

4

Deixe-me adivinhar que existe a opção set -e (ou a forma longa set -o errexit ) na sua .bashrc ( .bash_profile ).

-e

Saia imediatamente se um pipeline (que pode consistir de um único comando simples ), um subshell comando entre parênteses, ou um dos comandos executado como parte de uma lista de comandos entre colchetes (ver SHELL GRAMMAR acima) sai com um status diferente de zero. O shell não sai se o comando que falha faz parte da lista de comandos imediatamente após uma enquanto ou até palavra-chave, parte do teste seguindo as palavras if ou elif reservada, parte de qualquer comando executado em & amp; & amp; ou || lista, exceto o comando após o final & amp; & amp; ou || , qualquer comando em um pipeline mas o último, ou se o valor de retorno do comando é sendo invertido com ! . Uma armadilha em ERR , se definido, é executado antes do shell sair. Esta opção aplica-se a o ambiente shell e cada ambiente subshell separadamente (consulte EXECUÇÃO DO COMANDO AMBIENTE acima) e pode fazer com que as subcaixas sair antes de executar todos os comandos na sub-camada.

- bash (1)

Esta opção é muito útil para alguns scripts - permite evitar numerosos || exit 1 , e. g. em vez de

cd /var/ || exit 1
tar -cvf myarchive.tar "$SOMEDIR" || exit 1
rm -r "$SOMEDIR"

você pode escrever

set -e
cd /var/
tar -cvf myarchive.tar "$SOMEDIR"
rm -r "$SOMEDIR"

Mas é claro que não há motivo para configurá-lo para a sessão bash interativa.

    
por Dmitry Alexandrov 31.12.2013 / 16:58
2

Verifique e verifique se você não tem alguma configuração bashrc ou profile para alterar o comportamento normal dessa instância.

A melhor maneira de verificar isso é fazer backup de seus arquivos atuais bashrc e profile e substituir os ativos por cópias virgens desses dois arquivos. Efetue logout e, em seguida, faça login novamente e verifique se você ainda tem esse comportamento.

Se isso resolver essa falha, adicione cuidadosamente sua configuração personalizada e anote a última alteração feita se a falha voltar.

    
por L. D. James 31.12.2013 / 15:44