回答:
以下のためのbash実行:
PS4='+$BASH_SOURCE> ' BASH_XTRACEFD=7 bash -xl 7> /tmp/mylog
次に使用します
grep "http_proxy=" /tmp/mylog
それを検索します。
また、検索をし制限することができます/homeし、/etcより良い結果のために:
$ grep "http_proxy=" /tmp/mylog | grep -e /home -e /etc
++/home/ravexina/.bashrc> http_proxy=http://test:80
つまり、それは私のに設定されてい~/.bashrcます。
本質的に、UnixとLinuxのサイトで尋ねた内容の複製によると、この問題に対処する方法はいくつかあります。
envコマンドを使用して、変数が作成された順序を観察し、前後の変数を使用して、変数がどこから来たのかを大まかに把握しますset -xコマンドで調査しようとするファイルをファイルの最初と最後にラップして、各ファイルの機能を確認します。潜在的にそれらのファイルは他のファイルを調達してset -xいるため、調達が発生する場所を明示的に示す必要がありますfind -type f -exec grep 'VARIABLE_NAME' {} \;またはを介して、ホームフォルダーにある可能性のあるファイルをいくつか検討することを検討してくださいgrep -rI 'VARIABLE'。これは時間がかかるので、最良の結果ではないかもしれませんが、ちょっと-簡単な方法がない場合は、難しい方法を脇に置いてはいけません。strace -v -s 10000 -e execve,open,read bash何が読み取られ、前のopen()呼び出しが何であるかを実行して観察します。これは、2&>1 > output_trace.txt後で読むためのリダイレクトに役立ちgrepます。ソース.bashrc、.bash_profile、/ etc / bash.bashrc、および/ etc / environmentについて言及しました。以下も確認する必要があります。
/etc/profile/etc/profile.d/*~/.profile(がない場合のみ~/.bash_profile)~/.bash_loginArch Wikiによると、いくつかのプログラムwgetはこの変数を使用しています。.wgetrcまたは/etc/wgetrcファイルがあるかどうかを確認します。これはそこに設定されているかもしれませんが、どこに供給されるかbashは別の謎です