
export
コンソール エミュレータ (Bash を実行) に の代わりに誤って コマンドを入力したためexport -p
、すべての bash_completion スクリプトが環境に永続的に残り、再起動後もそのままになっています。元に戻したいのですが、数時間経っても原因がわかりません。/etc/bash.bashrc でそれらを見つけることはできましたが、何が原因なのかわかりません。いずれにしても、export
引数なしでこのような損害が発生する方法や理由がまだわかりません。
これは Knoppix の非ルート アカウントで発生します。ルート アカウントknoppix
の場合は、このような問題は発生しません。su -
[更新: 何を言っているのかわかりません。「環境」とは、set
関数が表示されていた Bash 組み込みの出力のことです。 を使用する必要がありますenv
。とにかく、何が起こったかというと、特定の値の生成をテストするために Makefile で を使っていたのですset
が、突然それらの関数がすべて出力に表示されたので驚きました。その後、再起動後にコマンド ラインから確認したところ、まだそれらが表示されていました。Makefile から確認しようとは思っていませんでした (Makefile からは表示されなくなり、エクスポートされなくなりました。つまり、問題は解決しました。明らかset
にそれらはずっと出力に含まれていたのですが、偶然入力して出力export
に表示されるまで気付かなかったmake set
のです。それでも、bash のドキュメントと動作が一致していないようです。export
名前なしは、すべてをエクスポートするのではなく、エクスポートされた変数のリストを返すはずです。)]
答え1
ですべての変数をリストしenv
、 を使用してunset $VARIABLE
環境から不要な変数をすべて削除し、問題を解決できます。 たとえば、PATH を設定解除すると、コマンドやアプリケーションを実行できなくなるため、適切な変数を設定解除するように注意する必要があります。
これは、bash_completion スクリプトで何が問題になったかを説明するものではありませんが、誤って実行した を元に戻しますexport
。