通过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中导出variablename.

转载注明原文:通过bash控制传递给子进程的环境 - 代码日志