通过 bash 控制传递给子进程的环境

Controlling the environ passed to child process by bash

我正在使用 x86_64 GNU/Linux 和 bash

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char **argv)
{
    system("set > setc");                           // A subset of `$ set`

    return 0;
}

我可以看到文件 setc 包含 $ set.
的子集 我很好奇 shell(父进程)如何决定向子进程提供什么,不提供什么?
如果我想为子进程提供更多环境变量怎么办?如何控制它?

一个shell变量可以导出也可以不导出。 shell 只会将导出的变量传递给子进程。在bash中,你可以通过执行export var.

导出变量(例如$var)