Je suis tombé sur cette page wiki: Procédure de dépannage du gestionnaire de packages .
Il y avait des commandes telles que:
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
Alors, quel est le but de LANG=C;
?
LANG=C command
et non LANG=C;command
. Le premier formulaire force la valeur de LANG
la variable d'environnement pendant la durée command
tandis que le second formulaire est en fait deux commandes où la première partie définit simplement une variable locale (non exportée) et la seconde partie exécute la commande sans définir la variable d'environnement requise.
LANG
dans l'environnement, donc il fonctionne probablement avec des points-virgules redondants; mais il est (1) redondant car rien ne va changer LANG
entre les commandes. Faire également allusion à quelqu'un pour exécuter des commandes de cette manière est (2) erroné en raison d'un environnement changeant inutilement et sans invitation, et (3) cela fournit un modèle incorrect pour tout utilisateur non informé qui réapplique plus tard l'utilisation - éventuellement avec une variable shell qui n'est pas dans l'environnement et donc même sans effet sur les commandes exécutées qui le nécessitent pour une fonction correcte, peut-être sûre.