Ho provato il seguente comando per impostare Proxy su yaourt:
export ALL_PROXY=http://proxy.example.com:8080
La domanda è come annullare limpostazione del proxy su yaourt? In generale, come posso annullare limpostazione del valore di una variabile nella shell corrente?
Commenti
Risposta
Per rimuovere una variabile dambiente, esegui
unset ALL_PROXY
Nota che una variabile dambiente ha effetto solo in un programma e il programma esso lancia. Se imposti una variabile dambiente in una finestra della shell, non influirà sulle altre finestre della shell.
Se hai aggiunto export ALL_PROXY=… a un file di inizializzazione, rimuovi da lì.
Puoi eseguire export senza argomenti per vedere quali variabili di ambiente sono impostate nella shell corrente.
Ricorda che per rendere disponibile una variabile di shell ai programmi avviati da quella shell, è necessario esportarla, eseguendo export VAR dopo lassegnazione VAR=VALUE o combinando i due (export VAR=VALUE).
Commenti
- Penso che ' non è essenziale che
export VARsi verifichi dopo lassegnazione. Osserva:sh -c 'export F; F=2; sh -c "echo F2=\$F"; echo F1=$F'stampa " F2 = 2 \ nF1 = 2 ". -
unsetè necessario anche per cancellare gli array bash associativi (ad esempio: bash " tabelle hash " o " dicts "), come spiega questo tutorial nella sezione " Cancellazione di ": artificialworlds.net/blog/2012/10/17/… .
Risposta
Per annullare limpostazione di una variabile associata in bash usa unset VARIABLE (unset ALL_PROXY nel tuo caso). Questo comando elimina effettivamente la variabile. Puoi anche impostare il valore di una variabile su vuoto mediante
VARIABLE=
o
VARIABLE=""
La differenza è che gli ultimi due comandi non eliminano la variabile. Puoi vedere la differenza utilizzando il flag -u con set per forzarlo a trattare le variabili non impostate come un errore durante la sostituzione:
/home/user1> var="" /home/user1> echo $var /home/user1> set -u /home/user1> echo $var /home/user1> unset var /home/user1> echo $var -bash: var: unbound variable
Nellesempio precedente, bash si lamenta di var non è associato (dopo aver annullato il suo valore) che è lerrore previsto (nota che questo non accade nel secondo comando echo, il che significa che var ha un valore che è empty o null).
Commenti
- e se io ho una variabile nel mio file script di shell e io provo quel file, quindi come faccio a annullarne limpostazione?
- @Abhinav usa
unsetnello script. si applica.
unset ALL_PROXY$ ALL_PROXY=http://proxy.example.com:8080 yaourtche imposterà envvar solo per il comando run . Puoi inserire tutte leFOO=bar BAZ=batvariabili che desideri prima che il comando venga eseguito.