Natknąłem się na tę stronę wiki: Procedura rozwiązywania problemów z Menedżerem pakietów .
W nim były polecenia takie jak:
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
Więc jaki jest cel LANG=C;?
LANG=C commandi nie LANG=C;command. Pierwsza forma wymusza wartość LANGzmiennej środowiskowej na czas, commandpodczas gdy druga forma to tak naprawdę dwa polecenia, w których pierwsza część po prostu ustawia zmienną lokalną (nieeksportowaną), a druga część uruchamia polecenie bez ustawiania wymaganej zmiennej środowiskowej.
LANGznajduje się w środowisku, więc prawdopodobnie działa z redundantnymi średnikami; ale jest (1) zbędny, ponieważ LANGmiędzy poleceniami nic się nie zmieni . Również sugerowanie komuś, aby uruchamiał polecenia w taki sposób, jest (2) błędne z powodu niepotrzebnie i nieproszonego zmieniającego się środowiska, oraz (3) zapewnia to niepoprawny wzorzec dla każdego niedoinformowanego użytkownika, który później ponownie zastosuje użycie - być może ze zmienną powłoki, która nie jest w środowisko, a tym samym nie ma żadnego wpływu na uruchamiane polecenia, które wymagają poprawnego, być może bezpiecznego działania.