首页 > 什么是环境变量?有什么作用?

什么是环境变量?有什么作用?

环境变量问题 这是我的举例,到底什么是环境变量,有什么作用,在mac/linux系统上有什么区别?我查过一些资料,可是还是不太懂。在我学习node的过程中,经常有人跟我提到这个东西,可是我并不清楚它到底是什么。


环境变量简单来说就是给系统应用程序设置一些参数,具体一个环境变量包括

  1. 名称

  2. 参数值

这样当系统启动一个应用程序的时候,这些参数就默认设置好了,在linux下你可以通过,修改/etc/profile、~/.profile等文件来设置系统全局的环境变量,如:

# other settings
# ...
export my_var 'hello world!';

然后就可以通过下面代码段,在你的程序运行期间获得这个值

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

int main() {
    const char * my_var = getenv("my_var");
    printf("my_var = %s\n", my_var);
    return 0;
}

当然你说的nodejs程序中可以这样获取环境变量:

console.log(process.env)

会输出类似这样:

{
    PATH: '/usr/local/bin:/usr/bin',
    JAVAHOME: '/usr/lib/Java',
    ...
}

执行子进程的时候,也可以指定子进程自己的环境变量,如:

var exec = require('child_process').exec;

var child = exec('cat *.js', {
    PATH: '/usr/bin',
    MY_VAR: 'hello world!'
}, function (error, stdout, stderr) {
    console.log('stdout: ' + stdout);
    console.log('stderr: ' + stderr);
    if (error !== null) {
      console.log('exec error: ' + error);
    }
});

通过child_process.exec函数的第二个参数,传递一个Object去覆盖默认的环境变量

这是我的一些认识和见解,希望对你有帮助,具体更深的我也讲不来,呵呵!


环境变量可以理解为一组文件夹路径,但你输入一个命令时,系统自动依次在这些文件夹中搜索可执行程序,找到就执行,找不到就报错。

点踩的那位同学你能给个为什么么?

【热门文章】
【热门文章】