मैं इस विकी पृष्ठ पर आया: पैकेज प्रबंधक समस्या निवारण प्रक्रिया ।
इसमें, इस तरह के आदेश थे:
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) यह किसी भी अनजाने उपयोगकर्ता के लिए एक गलत पैटर्न प्रदान करता है जो बाद में उपयोग को फिर से लागू करता है - संभवतः एक शेल चर के साथ नहीं है जो में नहीं है वातावरण और इस प्रकार कमांड पर कोई प्रभाव नहीं पड़ता है जो इसे सही, शायद सुरक्षित, फ़ंक्शन के लिए आवश्यक है।