环境变量问题 这是我的举例,到底什么是环境变量,有什么作用,在mac/linux系统上有什么区别?我查过一些资料,可是还是不太懂。在我学习node的过程中,经常有人跟我提到这个东西,可是我并不清楚它到底是什么。
环境变量简单来说就是给系统和应用程序设置一些参数,具体一个环境变量包括 名称 参数值 这样当系统启动一个应用程序的时候,这些参数就默认设置好了,在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去覆盖默认的环境变量 这是我的一些认识和见解,希望对你有帮助,具体更深的我也讲不来,呵呵!
环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数,如:临时文件夹位置和系统文件夹位置等。 可以理解为一个系统级别的变量,用于临时或者永久的存储一些软件运行时的变量,如JAVA_HOME,或者一些FastCGI通信数据。
环境变量简单来说就是给系统和应用程序设置一些参数,具体一个环境变量包括
名称
参数值
这样当系统启动一个应用程序的时候,这些参数就默认设置好了,在linux下你可以通过,修改/etc/profile、~/.profile等文件来设置系统全局的环境变量,如:
然后就可以通过下面代码段,在你的程序运行期间获得这个值
当然你说的nodejs程序中可以这样获取环境变量:
会输出类似这样:
执行子进程的时候,也可以指定子进程自己的环境变量,如:
通过child_process.exec函数的第二个参数,传递一个Object去覆盖默认的环境变量
这是我的一些认识和见解,希望对你有帮助,具体更深的我也讲不来,呵呵!