Eu recentemente migrei todos os meus dotfiles e os configurei para um novo laptop rodando o Ubuntu 13.04, e tenho notado um comportamento estranho que nunca vi antes. Essencialmente, parece que meu terminal às vezes tenta analisar os comandos da direita para a esquerda, em vez do modo normal. Ele não é consistente de forma alguma e, muitas vezes, digitar o mesmo comando duas vezes produzirá resultados diferentes.
Exemplo:
⋯ www localwork cd ~/Downloads
bash: /home/goldenapples/Downloads: Is a directory
~ cd ~/Downloads
~ Downloads ls
Então, o primeiro comando parece ter sido analisado como cd ~; Downloads
, mas na segunda vez que eu digitei o mesmo comando, ele funcionou bem.
O mesmo acontece com aliases. Aqui eu tenho gp
aliased para git push
:
~ Documents infostats-theme master gp
usage: git [--version] [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
[-p|--paginate|--no-pager] [--no-replace-objects] [--bare]
[--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
[-c name=value] [--help]
<command> [<args>]
[...]
See 'git help <command>' for more information on a specific command.
The program 'push' is currently not installed. You can install it by typing:
sudo apt-get install heimdal-clients
~ Documents infostats-theme master gp
Counting objects: 22, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (14/14), done.
Writing objects: 100% (14/14), 1.69 KiB, done.
Total 14 (delta 12), reused 0 (delta 0)
To [email protected]:janrain/statboard.git
cf86529..3208e21 HEAD -> master:wq
Não faço ideia do que aconteceu lá. Meus apelidos bash foram processados no primeiro exemplo, e ele leu corretamente a linha como git push
, mas não sei o que aconteceu depois disso. Parece que ele tentou analisar o comando como git; push;
e, assim, mostrou a tela de ajuda do git e, em seguida, exibiu um erro que nenhum programa chamado push
foi instalado. A coisa mais óbvia é: digitar o mesmo comando imediatamente depois funcionou bem.
Este é um daqueles problemas que eu acabei de inventar porque não faz sentido. A única coisa que posso identificar é que o comportamento problemático parece acontecer quando estou digitando de maneira especialmente rápida, e a lentidão e a redigitação do comando às vezes fazem com que funcione.
Estou usando principalmente o Bash dentro do tmux 1.8, se isso ajudar.
Atualização:
Adicionando esta linha ao meu .tmux.conf
:
set-option -g default-command "exec /bin/bash --norc"
parece ter resolvido o problema ... ou pelo menos eu não consegui causar isso novamente desde então. Mas ainda não faço ideia de por que ou como, e adoraria uma explicação.