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)
正如@geekosaur所提到的,sudo
出于安全原因重置环境.保持环境传递-E
切换到sudo
.
从sudo
联机帮助页:
-E
该
-E
(保护环境)选项指示用户希望保留他们现有的环境变量的安全策略.如果-E
指定了选项并且用户没有保留环境的权限,则安全策略可能会返回错误.