在 linux 下,我有一个 bash 脚本,它启动一个 c++ 程序二进制文件。我需要做的是在该脚本中设置一个环境变量,并在启动的 C++ 程序中使用getenv
.
这是脚本的代码
#!/bin/bash
export SAMPLE_VAR=1
./c++_binary
C++程序:
char * env_var = getenv("SAMPLE_VAR");
if (env_var != NULL) printf("var set\n");
但是,这似乎不起作用。据我了解,当我们执行脚本时,它将在一个新的子shell中运行并在那里设置环境变量 SAMPLE_BAR,但是 C++ 二进制文件也在同一个子shell中启动(可能我在这里错了)所以它应该可以访问 SAMPLE_VAR。我什至尝试编写一个单独的脚本来设置 env 变量,并且在主脚本中我调用该脚本source env_var_set.sh
无济于事。
是否可以通过这种方式将新设置的环境变量传递给程序?谢谢