【发布时间】:2014-03-03 03:28:31
【问题描述】:
我有一个关于 bash 终端的问题,这让我发疯了,我不知道为什么。
这是关于终端的,让我描述如下:
一开始提示是这样的:
[12:00]ruan:~>
但是当我连续输入字符时(例如,假设我输入了很多A),奇怪的事情发生了:
AAA:00]ruan:~ > AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
如您所见,我输入的字符从行首开始,这使我的命令无法读取。我不知道这怎么会发生。是和stty、inputrc还是别的有关?
/br
阮
我的 tty 配置如下:
:)[11:38]ruan:~ > stty -a
speed 38400 baud; 25 rows; 80 columns;
lflags: icanon isig iexten echo echoe echok echoke -echonl echoctl
-echoprt -altwerase -noflsh -tostop -flusho pendin -nokerninfo
-extproc
iflags: -istrip icrnl -inlcr -igncr ixon -ixoff ixany imaxbel iutf8
-ignbrk brkint -inpck -ignpar -parmrk
oflags: opost onlcr -oxtabs -onocr -onlret
cflags: cread cs8 -parenb -parodd hupcl -clocal -cstopb -crtscts -dsrflow
-dtrflow -mdmbuf
cchars: discard = ^O; dsusp = ^Y; eof = ^D; eol = <undef>;
eol2 = <undef>; erase = ^?; intr = ^C; kill = ^U; lnext = ^V;
min = 1; quit = ^\; reprint = ^R; start = ^Q; status = ^T;
stop = ^S; susp = ^Z; time = 0; werase = ^W;
我已经设置了 PS1,例如:
NORMAL="\033[0m"
RED="\033[0;31m"
RED_BOLD="\033[1;31m"
GREEN="\033[0;32m"
GREEN_BOLD="\033[1;32m"
YELLOW="\033[0;33m"
YELLOW_BOLD="\033[1;33m"
BLUE="\033[0;34m"
BLUE_BOLD="\033[1;34m"
MAGENTA="\033[0;35m"
MAGENTA_BOLD="\033[1;35m"
CYAN="\033[0;36m"
CYAN_BOLD="\033[1;36m"
function smile_or_frown() {
[[ $? = 0 ]] && echo -e "${CYAN_BOLD}:)" || echo -e "${MAGENTA_BOLD}:("
}
export PS1="\$(smile_or_frown)$BLUE_BOLD[\A]$GREEN_BOLD\u:$RED_BOLD\w$YELLOW_BOLD\$(parse_git_branch)$NORMAL > "
【问题讨论】:
-
您是否尝试在其他客户端中重现该问题?
-
@d3c0y,是的,我第一次在办公室发现它,我想也许有人搞砸了环境。但是当我决定使用 bash 而不是 zsh 时,我发现它也存在于我家的 Mac 上。顺便说一句,我使用zsh时没有这种现象。
-
什么是
PS1(命令提示符),设置为? -
@Leffler,请看我的编辑更新,我刚刚放好了
标签: linux bash terminal console tty