Я наткнулся на эту вики-страницу: Процедура устранения неполадок диспетчера пакетов .
В нем были такие команды, как:
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пока вторая форма фактически является двумя командами, где первая часть просто устанавливает локальную (не экспортируемую) переменную, а вторая часть запускает команду без установки требуемой переменной среды.
LANGнаходится в среде, поэтому он, вероятно, работает с избыточными точками с запятой; но это (1) избыточно, потому что LANGмежду командами ничего не изменится . Также (2) неверно указывать кому-либо на выполнение команд таким образом: из-за неоправданно и незваного изменения среды, и (3) это обеспечивает неправильный шаблон для любого неинформированного пользователя, который позже повторно использует использование - возможно, с переменной оболочки, которая не находится в окружающая среда и, следовательно, даже не оказывает никакого влияния на выполнение команд, которые требуют ее для правильной, возможно, безопасной, функции.