通过sudo - 环境变量从另一个shell脚本调用shell脚本?

use*_*378 4 bash shell sudo environment-variables

我正在从脚本A调用bash脚本B.在脚本A(父脚本)中,我正在导出一些变量.我想在脚本B(下标)中使用这些变量,但是变量值没有从脚本A传递到脚本B.有没有办法从脚本B访问变量值?

#!/bin/bash
# script_A.sh
export VAR="value"
enter code here
sudo -u user ./script_B.sh

#!/bin/bash
# script_B.sh
echo $VAR    # this prints nothing
Run Code Online (Sandbox Code Playgroud)

c00*_*ter 9

正如@geekosaur所提到的,sudo出于安全原因重置环境.保持环境传递-E切换到sudo.

sudo联机帮助页:

-E

-E(保护环境)选项指示用户希望保留他们现有的环境变量的安全策略.如果-E指定了选项并且用户没有保留环境的权限,则安全策略可能会返回错误.