|

楼主 |
发表于 2008-1-27 19:05:32
|
显示全部楼层
罪魁祸首就是.bashrc文件。
在bash的联机手册里有一段,说的是关于通过RSHD登录系统时,系统要执行.bashrc文件。而这个文件是在启动一个交互SHELL时才要执行的。而在SSH登录时,系统就要执行.bashrc文件。而SSH登录系统是非交互的。如果执行.bashrc文件时,产生输入与输出就会出在我遇到的这个问题。
解决办法是:在.bashrc文件中,测试一下是交互SHELL还是非交互的,如果是非交互的,则直接退出即可。
一般在.bashrc文件的最前边加入下面这行就可以了:
[ -z "$PS1" ] && return
或者:
[ $- != *i* ] && return
也可以通过更改.bashrc文件的属性的办法来实现。但我发现改属性对于root不起做用。而对非root用户才起做用。等弄清楚了再把方法帖上来吧! |
|