这不是关于PS1的问题。
我正在使用bash,我的提示很丰富,ls的输出有颜色,但rm输出:
20:08:15 ~> rm test.txt
rm: cannot remove âtest.txtâ: No such file or directory
20:08:30 ~>
如何让âtest.txtâ
正确打印?
ENV:
20:19:45 ~> cat env.txt
XDG_SESSION_ID=1336
TERM=xterm
SHELL=/bin/bash
SSH_TTY=/dev/pts/0
USER=ubuntu
LS_COLORS= ...really long line...
MAIL=/var/mail/ubuntu
PATH=/usr/local/sbin:/usr/local/bin ...
PWD=/home/ubuntu
LANG=en_US.UTF-8
PS1=\[\e[0;32m\]\t \W>\[\e[1;37m\]
SHLVL=1
HOME=/home/ubuntu
LOGNAME=ubuntu
LESSOPEN=| /usr/bin/lesspipe %s
XDG_RUNTIME_DIR=/run/user/1000
LESSCLOSE=/usr/bin/lesspipe %s %s
_=/usr/bin/env
答案 0 :(得分:2)
这是一个语言环境问题。
rm
正在尝试打印左右单引号字符,可能是UTF-8。修改您的语言环境设置,使其仅使用ASCII(export LANG=C
将执行此操作),或者更好地配置终端仿真器,以便正确处理UTF-8。
locale
命令将显示您当前的区域设置,这些设置由设置环境变量控制。这是我的,只是作为一个例子:
$ locale
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE=C
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=