web-dev-qa-db-fra.com

Pourquoi dois-je parfois obtenir 'sh:' \ 302 \ 211 ... ': commande non trouvé' dans xterm / sh?

Parfois, lorsque je saisis simplement une commande valide comme "trouver ...", ou quoi que ce soit vraiment, je récupère ce qui suit, qui est complètement inattendu et déroutant (... est le nom de commande i type):

sh: $'\302\211...': command not found

Il y a une certaine corruption que je pense. Je n'utilise pas la couleur dans mon invite, j'utilise la coque Bash en mode POSIX en tant que sh (chsh à /bin/sh etc - $Shell est sh).

Qu'est-ce qui se passe et pourquoi cela continue-t-il? Tout ce que je peux déboguer? Je pense que c'est plus d'un problème xterm _ sh, ou au moins une combinaison des deux.

Fichiers, pour le contexte:

Mon /etc/profile, comme distribué avec une arche 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

Mon /etc/shrc, que j'ai créé comme moyen d'avoir sh analysez un fichier au démarrage, lors de la connexion non-connexion. Ceci est réalisé en utilisant ENV variable définie dans /etc/environment avec la ligne ENV=/etc/shrc:

PS1='\u@\H \w \$ '
alias ls='ls -F --color'
alias grep='grep -i --color'
[ -f ~/.shrc ] && . ~/.shrc

Mon ~/.profile, Je lance x lors de la connexion via le premier Virtual TTY:

[[ -z $DISPLAY && $XDG_VTNR -eq 1 ]] && exec xinit -- -dpi 111

Mon ~/.xinitc, comme vous pouvez le constater, j'utilise le système comme invité de la boîte virtuelle:

xrdb -merge ~/.Xresources

VBoxClient-all

awesome &

exec xterm

Et enfin, mon ~/.Xresources, pas de choses fantaisie ici, je suppose:

*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

Puisque ~/.profile références entre autres choses /etc/bash.bashrc, voici son contenu:

#
# /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 "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"'

    ;;
  screen)
    Prompt_COMMAND=${Prompt_COMMAND:+$Prompt_COMMAND; }'printf "\033_%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"'
    ;;
esac

[ -r /usr/share/bash-completion/bash_completion   ] && . /usr/share/bash-completion/bash_completion

Je n'ai aucune idée de ce que la déclaration case fait, d'ailleurs, il semble un peu méfiant cependant, mais encore une fois, à qui suis-je à savoir.

7
amn

sur ma machine de travail, j'ai une fenêtre et utilisez une CLI GIT-BASH (Mintty Cygwin) pour exécuter des commandes je serais normalement exécuté sur Linux

c'est arrivé à moi que j'ai eu bash: $'\302\226curl': command not found Après avoir copié-coller à partir d'une vitrine d'alimentation:

$ curl -v -F foobar
bash: $'\302\226curl': command not found

où était complètement invisible à l'œil nu et ressemblait à $ curl -v -F foobar

Alors j'ai supprimé tous les espaces d'avant ma commande, comme :

$curl -v -F foobar

nOTE Il n'y a plus de surses espaces entre $

j'espère que cela aide quelqu'un, acclamant

2
Piotr Z

Cela résout le problème:

setxkbmap -option "nbsp:none"
1
Bigouden