Почему MYVAR=something не отображается в printenv? Это связано с функцией getenv?

Если бы мы искали определение uint64 в моей 64-битной системе Debian, я бы искал именно эту команду:

echo | gcc -E -xc -include stdint.h -include stddef.h - | grep uint64_t

выходы

typedef unsigned long int uint64_t;

Вероятно, эта команда где-то бродит, но я не смог найти ее неявно.

0
14.02.2021, 11:22
1 ответ

Написав

ANDROID_PRODUCT_OUT=test

вы устанавливаете только переменную оболочки ANDROID_PRODUCT_OUTв текущей оболочке. Если вы хотите сделать ее переменной среды, доступной для разветвленных процессов (, то есть для любой команды, которую вы выполняете из этой оболочки ), вам нужно экспортировать переменную:

export ANDROID_PRODUCT_OUT

Вы также можете установить переменную и пометить ее для автоматического экспорта в одну строку:

export ANDROID_PRODUCT_OUT=test
printenv | grep ANDR # outputs: ANDROID_PRODUCT_OUT=test

Если вы не хотите автоматически экспортировать переменную для всех разветвленных программ, а сделать ее доступной только для определенной программы, (скажем,./myprogram)которую вы хотите выполнить, вы можете сделать это следующим образом:

ANDROID_PRODUCT_OUT=test./myprogram
7
18.03.2021, 22:30

Теги

Похожие вопросы