I'm calling bash script B from script A. In script A (parent script) I am exporting some variables. I would like to use these variables in script B (subscript), but the variable values are not being passed on from script A to script B. Is there a way to access the variable values from script 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
As @geekosaur mentioned, sudo
resets the environment for security reasons.
To preserve the environment pass -E
switch to sudo
.
from the sudo
manpage:
-E
The
-E
(preserve environment) option indicates to the security policy that the user wishes to preserve their existing environment variables. The security policy may return an error if the-E
option is specified and the user does not have permission to preserve the environment.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With