Tôi đã xem qua trang wiki này: Quy trình khắc phục sự cố quản lý gói .
Trong đó, có các lệnh như:
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
Vậy mục đích của nó là LANG=C;
gì?
LANG=C command
và không LANG=C;command
. Dạng thứ nhất buộc giá trị của LANG
biến môi trường trong khoảng thời gian command
trong khi dạng thứ hai thực sự là hai lệnh trong đó phần thứ nhất chỉ đặt biến cục bộ (không xuất) và phần thứ hai chạy lệnh mà không đặt biến môi trường cần thiết.
LANG
là trong môi trường, vì vậy nó có thể hoạt động với dấu chấm phẩy dư thừa; nhưng nó là (1) dư thừa vì không có gì thay đổi LANG
giữa các lệnh. Cũng gợi ý ai đó chạy các lệnh theo cách như vậy là (2) sai vì môi trường thay đổi không cần thiết và không được mời, và (3) điều này cung cấp một mẫu không chính xác cho bất kỳ người dùng không hiểu biết nào sau đó áp dụng lại cách sử dụng - có thể với biến shell không có trong môi trường và do đó thậm chí không có bất kỳ ảnh hưởng nào đến các lệnh chạy yêu cầu nó cho chức năng chính xác, có lẽ là an toàn.