84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
环境变量问题 这是我的举例,到底什么是环境变量,有什么作用,在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去覆蓋預設的環境變數
這是我的一些體認和見解,希望對你有幫助,具體更深的我也講不來,呵呵!
環境變數可以理解為一組資料夾路徑,但你輸入一個指令時,系統自動依序在這些資料夾中搜尋可執行程序,找到就執行,找不到就報錯。
點踩的那位同學你能給個為什麼麼?
環境變數簡單來說就是給系統和應用程式設定一些參數,具體一個環境變數包括
名稱
參數值
這樣當系統啟動一個應用程式的時候,這些參數就預設設定好了,在linux下你可以透過,修改/etc/profile、~/.profile等檔案來設定係統全域的環境變量,如:
然後就可以通過下面程式碼段,在你的程式運行期間得到這個值
當然你說的nodejs程式中可以這樣取得環境變數:
會輸出類似這樣:
執行子程序的時候,也可以指定子程序自己的環境變量,如:
透過child_process.exec函數的第二個參數,傳遞一個Object去覆蓋預設的環境變數
這是我的一些體認和見解,希望對你有幫助,具體更深的我也講不來,呵呵!
環境變數可以理解為一組資料夾路徑,但你輸入一個指令時,系統自動依序在這些資料夾中搜尋可執行程序,找到就執行,找不到就報錯。