Às vezes, quando eu simplesmente digito um comando válido como 'find ...', ou qualquer coisa realmente, eu recebo o seguinte, que é completamente inesperado e confuso ( ...
é o nome do comando que eu digito):
sh: $'21...': command not found
Há alguma corrupção acontecendo, eu acho. Eu não uso cores no meu prompt, estou usando o shell Bash no modo POSIX como sh
( chsh
to /bin/sh
e assim por diante - $SHELL
is sh
).
O que está acontecendo e por que isso continua acontecendo? Qualquer coisa que eu possa depurar? Acho que isso é mais um problema xterm
do que sh
, ou pelo menos uma combinação dos dois.
Arquivos, para contexto:
Meu /etc/profile
, conforme distribuído com o Arch Linux x86-64:
# /etc/profile
#Set our umask
umask 022
# Set our default path
PATH="/usr/local/sbin:/usr/local/bin:/usr/bin"
export PATH
# Load profiles from /etc/profile.d
if test -d /etc/profile.d/; then
for profile in /etc/profile.d/*.sh; do
test -r "$profile" && . "$profile"
done
unset profile
fi
# Source global bash config
if test "$PS1" && test "$BASH" && test -r /etc/bash.bashrc; then
. /etc/bash.bashrc
fi
# Termcap is outdated, old, and crusty, kill it.
unset TERMCAP
# Man is much better than us at figuring this out
unset MANPATH
Meu /etc/shrc
, que eu criei como uma forma de ter sh
parse algum arquivo na inicialização, quando não fosse o shell de login. Isso é obtido usando a variável ENV
definida em /etc/environment
com a linha ENV=/etc/shrc
:
PS1='\u@\H \w \$ '
alias ls='ls -F --color'
alias grep='grep -i --color'
[ -f ~/.shrc ] && . ~/.shrc
Meu ~/.profile
, estou iniciando o X ao fazer login através do primeiro virtual tty:
[[ -z $DISPLAY && $XDG_VTNR -eq 1 ]] && exec xinit -- -dpi 111
Meu ~/.xinitc
, como você pode ver, estou usando o sistema como um convidado da Virtual Box:
xrdb -merge ~/.Xresources
VBoxClient-all
awesome &
exec xterm
E, finalmente, meu ~/.Xresources
, nada de fantasia aqui, eu acho:
*faceName: Inconsolata
*faceSize: 10
xterm*VT100*translations: #override <Btn1Up>: select-end(PRIMARY, CLIPBOARD, CUT_BUFFER0)
xterm*colorBDMode: true
xterm*colorBD: #ff8000
xterm*cursorColor: S_red
Como ~/.profile
faz referência entre outras coisas /etc/bash.bashrc
, aqui está seu conteúdo:
#
# /etc/bash.bashrc
#
# If not running interactively, don't do anything
[[ $- != *i* ]] && return
PS1='[\u@\h \W]\$ '
PS2='> '
PS3='> '
PS4='+ '
case ${TERM} in
xterm*|rxvt*|Eterm|aterm|kterm|gnome*)
PROMPT_COMMAND=${PROMPT_COMMAND:+$PROMPT_COMMAND; }'printf "3]0;%s@%s:%ssh: $'21...': command not found
7" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"'
;;
screen)
PROMPT_COMMAND=${PROMPT_COMMAND:+$PROMPT_COMMAND; }'printf "3_%s@%s:%s3\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"'
;;
esac
[ -r /usr/share/bash-completion/bash_completion ] && . /usr/share/bash-completion/bash_completion
Eu não tenho ideia do que essa declaração case
faz, a propósito, parece um pouco suspeita, mas, novamente, quem sou eu para saber.