Bash
為什麼 MYVAR=something 不會出現在 printenv 中?這與 getenv 函式有關嗎?
我試圖理解為什麼來自 stlib.h 的 getenv為
PATH
我的自定義定義的變數(如ANDROID_PRODUCT_OUT
. 我認為這與此有關:ANDROID_PRODUCT_OUT=test printenv | grep ANDR #nothing
為什麼我定義的變數不會出現在
printenv
?這是否與為什麼getenv("ANDROID_PRODUCT_OUT")==NULL
即使變數是在執行二進製文件的同一 shell 中定義的原因有關?
通過寫作
ANDROID_PRODUCT_OUT=test
ANDROID_PRODUCT_OUT
您只需在目前 shell 中設置 shell 變數。如果你想讓它成為一個環境變數,可用於分叉程序(即,你從該 shell 執行的任何命令),你需要導出該變數:export ANDROID_PRODUCT_OUT
您還可以在一行中設置變數並將其標記為自動導出:
export ANDROID_PRODUCT_OUT=test printenv | grep ANDR # outputs: ANDROID_PRODUCT_OUT=test
如果您不想為所有分叉程序自動導出變數,而只想將其提供給
./myprogram
您要執行的特定程序(例如,),您可以這樣做:ANDROID_PRODUCT_OUT=test ./myprogram