
iTerm2 3.0.15
OS X 10.11.6
Tentei recentemente configurar meu terminal, após uma instalação limpa. Meu problema é que, quando faço isso, recebo uma mensagem de erro estranha. Eu vou no meu diretório .bash; Nele, possuo vários arquivos de configuração, assim denominados: aliases, bash_profile, exports, extras, funções, inputrc, path e prompt.
Quando eu faço:
source bash_profile
Recebo esta mensagem de erro:
-bash: book: command not found
Recebo exatamente a mesma mensagem de erro com todos os arquivos de configuração.
Eu tenho 2 problemas:
meu arquivo bash_profile não é originado, como qualquer outro arquivo de configuração que eu tento
Tenho certeza de que é fundamental configurar meu terminal, mas não entendo o que realmente significa a mensagem de erro. Entendo que há um problema com esse
book
comando, mas não consigo obter nenhuma informação valiosa sobre ele.
Coisas que tentei:
Comandos de terminal:
man book
,book --help
, ouhelp book
me disseram que obook
comando não existe ou não possui entrada manual. Sóinfo book
me deu um resultado, mas parece que está mais relacionado aoinfo
comando do que aobook
comando. E nenhuma menção a nenhumbook
em meus arquivos de configuração também.A pesquisa do Google "bash: book: command not found" não retorna muito, é claro que muitos "command not found", mas a única referência
book
é uma postagem no repositório Github do Bash-it. A maioria das respostas sobre comando não encontrado são sobre a variável de ambiente PATH, mas mesmo se eu inserir meu caminho manualmente, assim (espero que seja a maneira correta):export PATH=~/.rbenv/shims:/usr/local/Cellar:/usr/local/bin:/usr/local/sbin:/usr/local/bin/flake8:/usr/local/bin/git:/usr/bin:/bin:/usr/sbin:/sbin
Depois disso, quando tento novamente a
source bash_profile
, obtenho o mesmo resultado-bash: book: command not found
.Terminal.app tem o mesmo problema.
meu arquivo bash_profile:
#--------------------------------------------------------------------------#
# B A S H _ P R O F I L E
#--------------------------------------------------------------------------#
# Load .bashrc if it exists
test -f ~/.bashrc && source ~/.bashrc
# Load the shell dotfiles, and then some:
# * ~/.path can be used to extend `$PATH`.
# * ~/.extra can be used for other settings you don’t want to commit.
for file in ~/.bash/{path,prompt,exports,aliases,functions,extra,inputrc}; do
[ -r "$file" ] && [ -f "$file" ] && source "$file";
done;
unset file;
# Enable iTerm 2 Shell Integration
source ~/.iterm2_shell_integration.`basename $SHELL`
# Case-insensitive globbing (used in pathname expansion)
shopt -s nocaseglob;
# Append to the Bash history file, rather than overwriting it
shopt -s histappend;
# Autocorrect typos in path names when using `cd`
shopt -s cdspell;
# Do not autocomplete when accidentally pressing Tab on an empty line.
shopt -s no_empty_cmd_completion
# Enable tab completion for `g` by marking it as an alias for `git`
if type _git &> /dev/null && [ -f /usr/local/etc/bash_completion.d/git-completion.bash ]; then
complete -o default -o nospace -F _git g;
fi;
# Add tab completion for many Bash commands
#if which brew > /dev/null && [ -f "$(brew --prefix)/share/bash-completion/#bash_completion" ]; then
# source "$(brew --prefix)/share/bash-completion/bash_completion";
#elif [ -f /etc/bash_completion ]; then
# source /etc/bash_completion;
#fi;
# Thanks to @tmoitie, adds more tab completion for bash,
# also when hitting tab twice it will show a list.
#if [ -f $(brew --prefix)/etc/bash_completion ]; then
# . $(brew --prefix)/etc/bash_completion
#fi
# R U B Y
# Ensure rbenv will be used first
# eval "$(rbenv init -)"
# test -e "${HOME}/.iterm2_shell_integration.bash" && source "${HOME}/.iterm2_shell_integration.bash"
Responder1
Finalmente instalei o Bash 4.4.19 via Homebrew e editei as preferências do iTerm para usá-lo. Renomeei meus arquivos de configuração adicionando um ponto antes do nome e, para minha surpresa, funcionou, ou seja, quando forneci manualmente meus arquivos de configuração, o iTerm refletiu as alterações.
Não sei se teria obtido os mesmos resultados renomeando meus arquivos diretamente ou se a mudança induzida pela nova versão do Bash é a razão pela qual finalmente funcionou. Não conheço muito bem o bash, mas suponho que haja uma configuração padrão que foi de alguma forma confusa e usando uma nova instalação de uma nova versão com seutera configuração padrão fez apenas o suficiente para funcionar.
Depois de algum uso, percebi que o iTerm não carregaria automaticamente o arquivo .bash_profile na inicialização. Felizmente encontrei uma solução: nas preferências do aplicativo onde você pode especificar onde encontrar o executável, você pode adicionar um comando para executar na inicialização. source ~/.bash_profile
farei o trabalho até encontrar uma solução melhor.