sudo环境变量如何在linux中运行?

时间:2014-05-24 23:38:00

标签: linux bash .bash-profile

我目前对以下内容感到困惑:

sudo echo $MYVAR

从我的.bashrc输出我的变量,

sudo ./test.sh

没有,其中test.sh是以下可执行文件:

#!/bin/sh
echo $MYVAR                 

我正在运行Ubuntu 14.04。有人可以告诉我这里发生了什么吗?

1 个答案:

答案 0 :(得分:7)

当你运行sudo echo $MYVAR时,环境变量会在你的shell中展开......在sudo命令看到它之前。

使用sudo运行脚本时,该脚本只会看到sudo已包含在环境中的环境变量。出于安全原因,默认是不包括它们。

sudo命令有一个选项-E,它告诉命令用户想要通过所有环境变量。 sudoers配置文件可能允许也可能不允许。