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 command
i nie LANG=C;command
. Pierwsza forma wymusza wartość LANG
zmiennej środowiskowej na czas, command
podczas 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.
LANG
znajduje się w środowisku, więc prawdopodobnie działa z redundantnymi średnikami; ale jest (1) zbędny, ponieważ LANG
mię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.