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