このWikiページに出会ったのは、パッケージマネージャーのトラブルシューティング手順です。
その中には、次のようなコマンドがありました。
LANG=C;sudo apt-get clean
LANG=C;sudo apt-get autoclean
LANG=C;sudo apt-get -f install
LANG=C;sudo apt-get --fix-missing install
LANG=C;sudo apt-get --purge autoremove
LANG=C;sudo apt-get --fix-missing update -o APT::Cache-Limit=100000000
LANG=C;sudo apt-get update -o APT::Cache-Limit=100000000 && sudo apt-get dist-upgrade
それでは、目的はLANG=C;
何ですか?
LANG=C command
ではなくLANG=C;command
。最初の形式LANG
は期間中に環境変数の値を強制しますがcommand
、2番目の形式は実際には2つのコマンドであり、最初の部分はローカル(エクスポートされていない)変数を設定するだけで、2番目の部分は必要な環境変数を設定せずにコマンドを実行します。
LANG
環境にあるので、おそらく冗長なセミコロンで動作します。ただし、(1)LANG
コマンド間で何も変更されないため、冗長です。また、そのような方法でコマンドを実行するように誰かに示唆することは、(2)不必要で招待されていない環境の変更のために間違っています、そして(3)これは、後で使用を再適用する情報のないユーザーに間違ったパターンを提供します-おそらくではないシェル変数環境。したがって、正しい、おそらく安全な機能のために環境を必要とするコマンドの実行に影響を与えません。