理由を理解しようとしています。stlib.hから環境変数を取得するPATH
私のカスタム変数の場合(たとえばANDROID_PRODUCT_OUT
、これは次のように関連していると思います。
ANDROID_PRODUCT_OUT=test
printenv | grep ANDR
#nothing
私が定義した変数がなぜ表示されないのですかprintenv
?getenv("ANDROID_PRODUCT_OUT")==NULL
バイナリが実行されているのと同じシェルに変数が定義されているにもかかわらず、これはなぜ関係がありますか?
ベストアンサー1
書いて
ANDROID_PRODUCT_OUT=test
ANDROID_PRODUCT_OUT
現在のシェルでシェル変数を設定するだけです。フォークされたプロセス(つまり、そのシェルで実行されるすべてのコマンド)で使用できる環境変数になるようにするには、変数をエクスポートする必要があります。
export ANDROID_PRODUCT_OUT
1行に変数を設定し、自動エクスポートとしてマークすることもできます。
export ANDROID_PRODUCT_OUT=test
printenv | grep ANDR # outputs: ANDROID_PRODUCT_OUT=test
すべての分岐プログラムの変数を自動的にエクスポートせずに、実行したい特定の./myprogram
プログラム(たとえば)でのみ使用できるようにするには、次のようにします。
ANDROID_PRODUCT_OUT=test ./myprogram