免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1960 | 回复: 5
打印 上一主题 下一主题

很奇怪的问题:我的sh环境怎么啦? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-09-27 19:29 |只看该作者 |倒序浏览
which指令好像出问题了,很奇怪。
似乎给我进入了一个子 shell,拿一堆奇怪的玩意儿当prompt
...

$ which CC
0;zcyds221:/home/xiongzh0;zcyds221::mdm171ndj:/uhome/xiongzhno CC in /usr/bin /usr/sbin
$ which which
0;zcyds221:/home/xiongzh0;zcyds221::mdm171ndj:/uhome/xiongzh/usr/bin/which
$ which
0;zcyds221:/etc0;zcyds221::mdm171ndj:/uhome/xiongzh$

我把.bash_profile, .profile, .bashrc都删了,还是这样 .....

怎么去查这个问题?

论坛徽章:
0
2 [报告]
发表于 2010-09-27 19:40 |只看该作者
回复 1# DirtyBear


    绝对路径试试: /usr/bin/which

论坛徽章:
0
3 [报告]
发表于 2010-09-27 22:10 |只看该作者
用绝对路径,一样的结果。
真奇怪。

论坛徽章:
0
4 [报告]
发表于 2010-09-27 22:40 |只看该作者
$ ls -l  /usr/bin/which   # 查一下这个命令的 timestamp

换一个模拟终端试试 ?

论坛徽章:
0
5 [报告]
发表于 2010-09-28 09:16 |只看该作者
看看 --help ,也许是假 which 命令   

论坛徽章:
0
6 [报告]
发表于 2010-09-28 11:03 |只看该作者
问题搞清楚了。
which本身没有问题。
问题出在我在sh中调用了which。
从which手册(man which)看到,which不是一个shell内建的指令,而是一个Unix command。它有个局限性,就是要source ~/.cshrc,在$PATH和alias中搜索。
我在.cshrc中定义的alias,不能在sh中被正确识别。因此就出现了这个奇怪的问题。
解决办法:删除复杂的alias定义。
最佳实践:只在csh下使用which
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP