我正在将电话传送到Solaris机器上,并且我的脚本正在得到上面的错误。我意识到这是一个常见的问题,解决方案是检查我的配置文件中的'stty擦除^H‘行,但是我找不到。
.profile没有对stty的任何引用,而且我在任何地方都没有.cshrc。我在我的主目录中执行了grep,但是我什么也没想出来。
这个问题还有别的原因吗?所有在线解决方案都指向.profile或.cshrc。谢谢。
发布于 2011-03-15 19:55:34
我有这个,是stty in .kshrc。请记住,.kshrc来源于所有ksh脚本,交互式脚本和非交互式脚本。如果您运行一个脚本,stty仍然会触发,尝试使用stdin,它是一个文件(现在不是tty ),但是失败了。
发布于 2011-03-15 20:59:46
要跟踪您的配置文件,请尝试使用以-开头的名称调用登录shell,并使用选项-x来打印。要了解登录shell是什么,运行getent passwd $USER;登录shell是行中的最后一个字段(通常是/bin/something)。若要使用以-开头的名称调用shell,请创建一个以-开头的符号链接,并运行该链接。例如,如果登录shell是ksh:
ln -s /bin/ksh ./-ksh
./-ksh -x
rm ./-ksh我不确定这对csh是否有效。如果您没有发现任何有趣的东西,请同时查看/etc和您的点文件:
grep stty /etc/* ~/.* 2>/dev/null发布于 2011-03-15 17:23:55
来自csh手册页:
登录shell首先从系统文件/etc/csh.cshc和/etc/csh.login执行命令。然后,它从用户的主目录中的文件执行命令: first ~/..tcshrc (+),或者,如果找不到~/..tcshrc,则执行~/..cshrc,然后是~/..history(或组文件shell变量的值),然后是~/..login,最后是~/..cshdirs(或dirsfile shell变量的值) (+)。如果编译的话,shell可以在/etc/csh.login之前而不是在/etc/csh.cshc之前读取/etc/csh.login,如果编译好的话,可以在后面而不是在~/..tcshrc或~/..cshrc和~/..history之前读取~/..login;请参见版本shell变量。(+)
所以你可以在几个文件中找到这一行
https://unix.stackexchange.com/questions/9285
复制相似问题