当我使用 sudo 运行命令时,环境变量不可见吗?

当我使用 sudo 运行命令时,环境变量不可见吗?
$cat test
export var=value

$source ./test

$cat print.sh
echo $var

$chmod +x print.sh

$echo $var
value

$sudo ./print.sh

我什么也没得到。我期望看到价值。

到底是怎么回事?

答案1

如果您想使用 sudo 保留环境,请使用sudo -E它将保留环境。

如果您需要始终保留某些环境变量,请编辑 sudoers 文件以添加行:

Defaults        env_reset
Defaults        env_keep += "YOURVARIABLE OTHERVARIABLE YETANOTHER"

相关内容