linux sudo 运行找不到java、python命令-LMLPHP

在Ubuntu环境中安装好Java环境后设置环境变量:在/etc/profile中设置好了JAVA_HOME变量并引入到PATH中,

由于Ubuntu默认是不以root用户登录的,这时echo $PATH可以看到JAVA_HOME已经被设置好了,java命令也可以执行。

接下来sudo 运行shell脚本,提示找不到java命令,$PATH中也找不到JAVA_HOME这个路径了。

查了很久的资料也没有找到原因,后来偶然切换用户的时候用了su - root命令,这时又可以找到JAVA_HOME这个变量了。

对比了一下sudo和su - 这两个命令的差别才明白:sudo是切换用户存取权限,但是没有获得环境变量,所以PATH没有被带入;su - root是完全的切换用户,可以获得环境变量,所以可以找到JAVA_HOME。
---------------------

04-16 17:28