Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sudo环境变量在linux中是如何工作的?_Linux_Bash_.bash Profile - Fatal编程技术网

sudo环境变量在linux中是如何工作的?

sudo环境变量在linux中是如何工作的?,linux,bash,.bash-profile,Linux,Bash,.bash Profile,我目前对以下几点感到困惑: sudo echo $MYVAR 从my.bashrc输出我的变量 但是 不,其中test.sh是以下可执行文件: #!/bin/sh echo $MYVAR 我正在运行Ubuntu 14.04。有人能告诉我这里发生了什么吗?当您运行sudo echo$MYVAR时,环境变量在shell中展开。。。在sudo命令看到它之前 使用sudo运行脚本时,该脚本只会看到sudo已包含在环境中的环境变量。默认设置是不包含它们。。。出于安全原

我目前对以下几点感到困惑:

sudo echo $MYVAR
从my.bashrc输出我的变量

但是

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

#!/bin/sh
echo $MYVAR                 

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

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

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


sudo
命令有一个选项
-E
,告诉命令用户希望传递所有环境变量。sudoers配置文件可能允许也可能不允许这样做。

感谢您提供的详细信息!
#!/bin/sh
echo $MYVAR