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