我目前困惑以下:
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配置文件可能允许或不允许。