我试图理解为什么从 stlib.h 获取环境变量对于PATH
我的自定义变量(例如ANDROID_PRODUCT_OUT
.我认为这与此有关:
ANDROID_PRODUCT_OUT=test
printenv | grep ANDR
#nothing
为什么我定义的变量不会出现在printenv
?这是否与为什么getenv("ANDROID_PRODUCT_OUT")==NULL
即使变量是在执行二进制文件的同一个 shell 中定义的?
答案1
通过写作
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