Le script exporte http_proxy, affiche « enabled » puis se termine. Le Curl lancé ensuite depuis le terminal d'origine conserve son ancien environnement.

L'exécution du script a créé un processus enfant. Export rend une valeur disponible pour les enfants de ce processus ; il ne renvoie pas la valeur dans le shell parent. Placer l'export dans bash -c ou entre accents graves n'inverse pas cette relation.

Pour un commutateur interactif, une fonction définie dans le shell courant peut faire le travail attendu :

proxy_on() {
    export http_proxy=http://proxy.example.net:8080
    export https_proxy="$http_proxy"
}

Remplacez le point de terminaison d'exemple par votre service HTTP, ou par un candidat de la liste de proxies HTTP pour les requêtes publiques autorisées. Appelez la fonction après avoir chargé sa définition. Un fichier de shell sourcé est une autre façon d'exécuter des affectations dans le shell courant plutôt que dans un nouveau.

Les applications GUI existantes et les autres terminaux conservent leurs propres environnements. Si l'assistant ne doit lancer qu'une seule commande via proxy, garder la modification dans l'environnement de cette commande est souvent exactement la bonne portée.

Articles similaires