LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 806|回复: 4

一个奇怪的现象

[复制链接]
发表于 2005-7-2 17:29:49 | 显示全部楼层 |阅读模式
刚才遇到一个奇怪的现象,
在控制台的操作如下:

  1. $if [ "foo" = "foo" ]; then echo "equal";fi
复制代码

这时候的执行结果是打印
equal
这没问题,但是我用方向键调出这条命令(我不知到怎么准确的描述,不该大家应该明白我的意思吧),然后对该命令进行编辑,编辑操作如下
将光标置于"equal"后,输入 空格,然后输入else echo 等 , 输入的过程会造成控制台发生混乱。
我开始的时候是在mlterm下出现这种情况的,后来我退到console下,还是这种情况,有点奇怪哈。
环境
Debian 3.1
bash版本: 2.05b.0(1)

大家试试看你们有没有这种现象
 楼主| 发表于 2005-7-2 17:36:47 | 显示全部楼层
又试了一下,即便不是编辑原命令,而是直接输入

$if [ "foo" = "foo" ]; then echo "equals" else echo "not .... 也会发生问题
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-7-2 17:40:07 | 显示全部楼层
现在发现, 在bash输入的命令如果长度超过一行,它不回换行,而是从当前行的开头开始覆盖哈,
比如
$echo "adf dfa dsf asdf asdf asdf ads fa df asdf asfd asf as dfasf sf gdf asdf asdfasf  gasdf asdfqfsdf a fas "

一定要这样吗? 还是有设置可以换行
回复 支持 反对

使用道具 举报

发表于 2005-7-3 04:16:29 | 显示全部楼层
Post by benu
现在发现, 在bash输入的命令如果长度超过一行,它不回换行,而是从当前行的开头开始覆盖哈,
比如
$echo "adf dfa dsf asdf asdf asdf ads fa df asdf asfd asf as dfasf sf gdf asdf asdfasf  gasdf asdfqfsdf a fas "

一定要这样吗? 还是有设置可以换行


你的系统有点问题,bash不会这样的。无论是命令行还是编辑,都应是自动换行,不会从当前行从头开始。 我记得以前遇见过这种问题,不太清楚怎么解决。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-7-3 15:03:04 | 显示全部楼层
我找到原因了,是因为昨天我修改了PS1的原因。
出现问题的PS1定义:
PS1='\e[32;40m${debian_chroot:+($debian_chroot)}\u@\h:\w\$\e[0m '

修改时的参考文档:http://www.chinaunix.net/jh/4/23336.html, 主要是参照
PS1="\e[32;40m\w> \e[0m"
来修改的显示颜色。
刚才重新写成这样就没有问题了:
PS1='\[\033[32;40m\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$ \[\033[0m\]'


好象两种情况下修改颜色的方式不同,
具体为什么第一种会出现不换行的现象,我也没弄懂
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表