Chinaunix首页 | 论坛 | 博客
  • 博客访问: 308022
  • 博文数量: 47
  • 博客积分: 2455
  • 博客等级: 大尉
  • 技术积分: 558
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-25 15:43
文章分类

全部博文(47)

文章存档

2016年(2)

2012年(10)

2011年(13)

2010年(1)

2009年(19)

2008年(2)

分类: LINUX

2009-06-30 16:05:18

同事在测试时需要执行远程命令(非交互式), 但是却经常遇到远程命令找不到的情况. 远程机器的默认SHELL为/bin/bash, 而且他也把要执行命令的PATH加入到了自己目录的.bashrc下. 然而, 很奇怪, 命令就是找不到, PATH就等于没有设置过一样.

细看了一下, 他的.bashrc执行的第一行是:

[ -z "$PS1" ] && return

PS1是交互式SHELL的提示符, 在非交互式的情况下, 该值为空. 故而, 本行意思是, 如果是非交互式的调用shell,则返回, 即后面的环境变量设置都将不被执行.

同事注销掉这一行以后, 命令运行终于成功.

所以, 如果需要后台和远程命令用到.bashrc之类的文件的话, 要注意把此种类型的行去掉.


阅读(1824) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~