我正在从脚本A中调用bash脚本B。在父脚本A中,我导出了一些变量。我希望在子脚本B中使用这些变量,但变量值没有传递到脚本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
我正在从脚本A中调用bash脚本B。在父脚本A中,我导出了一些变量。我希望在子脚本B中使用这些变量,但变量值没有传递到脚本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
sudo
会清理传递给运行程序的环境变量。请参见man sudoers
获取详细信息,并查看您系统上的/etc/sudoers
以了解它将保留哪些(如果有)环境变量。sudo
命令的一部分进行赋值:$ cat test.sh
#!/usr/bin/env bash
echo "$foo"
$ unset foo
$ foo=bar ./test.sh
bar
$ sudo foo=bar ./test.sh
bar