如何在Linux环境中使用sudo环境variables?

我目前困惑以下:

sudo echo $MYVAR 

从我的.bashrc输出我的variables,

 sudo ./test.sh 

不,test.sh是以下可执行文件:

 #!/bin/sh echo $MYVAR 

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

当你运行sudo echo $MYVAR ,环境变量在你的shell中被扩展…在sudo命令看到它之前。

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

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