Lo script esporta http_proxy, stampa “enabled” ed esce. Il Curl avviato dopo dal terminale originale conserva ancora il suo vecchio ambiente.

Eseguire lo script ha creato un processo figlio. Export rende un valore disponibile ai figli di quel processo; non rimanda il valore nella shell padre. Mettere l'export dentro bash -c o tra gli accenti gravi non inverte questa relazione.

Per un interruttore interattivo, una funzione definita nella shell corrente può svolgere il lavoro previsto:

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

Sostituisci l'endpoint di esempio con il tuo servizio HTTP, o con un candidato dalla lista di proxy HTTP per richieste pubbliche consentite. Chiama la funzione dopo aver caricato la sua definizione. Un file di shell caricato è un altro modo per eseguire assegnazioni nella shell corrente invece che in una nuova.

Le applicazioni GUI esistenti e gli altri terminali conservano ancora i propri ambienti. Se l'helper deve avviare un solo comando tramite proxy, mantenere la modifica nell'ambiente di quel comando è spesso esattamente l'ambito giusto.

Articoli correlati