Mi sono imbattuto in questa pagina wiki: procedura di risoluzione dei problemi di Gestione pacchetti .
In esso c'erano comandi come:
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
Qual è lo scopo di LANG=C;
?
LANG=C command
e non LANG=C;command
. La prima forma forza il valore della LANG
variabile d' ambiente per la durata command
mentre la seconda forma è in realtà due comandi in cui la prima parte imposta semplicemente una variabile locale (non esportata) e la seconda parte esegue il comando senza impostare la variabile d'ambiente richiesta.
LANG
trova nell'ambiente, quindi probabilmente funziona con punti e virgola ridondanti; ma è (1) ridondante perché non cambierà nulla LANG
tra i comandi. Anche suggerire a qualcuno di eseguire comandi in questo modo è (2) sbagliato a causa di un ambiente in cambiamento non necessario e indesiderato, e (3) questo fornisce un modello errato per qualsiasi utente non informato che successivamente riapplica l'uso - possibilmente con una variabile di shell che non è in l'ambiente e quindi non ha nemmeno alcun effetto sui comandi eseguiti che lo richiedono per una funzione corretta, forse sicura.