关于AIX下的su不能使用环境变量问题的解决

关于AIX下的su不能使用环境变量问题的解决

雨水 2009-05-18

 

        在将系统从Linux移植到AIX的过程中会遇到很多问题,su不能使用环境变量的问题就是其中之一。

        脚本中有如下语句:

su - namp -c "/opt/nawg/bin/startwap.sh"

        意思上从当前用户切换到namp用户下去,以namp用户的身份执行/opt/nawg/bin/startwap.sh脚本文件。

        上面的语句在Linux运行没有任何问题,但在AIX环境就会报错,错误的意思上找不到某个环境变量。而你手工su – nampnamp用户下去,然后输入env却可以找到这个环境变量,这说明在Linux下和AIXsu – namp –c的行为是不同的。su - namp不能使用namp用户的环境变量。

        经过很长时间的摸索和跟IBM工程师的沟通,最后问题解决了。这里写下来跟大家分享一下。如果要使用namp用户的环境变量,需加一个参数-l,具体如下:

          su - namp -l -c "/opt/nawg/bin/startwap.sh"

        注意: -l这个参数在AIX下的man su 中根本就没有提到。这也是看似这么简单一个问题那么难以解决的原因。

        

 

 

你可能感兴趣的:(c,linux,IBM,脚本,AIX)