Ho aggiunto questo "export HISTCONTROL=ignoredups" riga in ~/.bashrc
per evitare voci duplicate nella cronologia di Bash nel mio desktop Linux. Hai notato che ho preceduto il HISTCONTROL
variabile con "export"
? Sai cosa è "export"
opzione per? Se ti stai chiedendo qual è la differenza tra la definizione di variabili bash con e senza opzione di esportazione, continua a leggere!
Differenza tra la definizione di variabili Bash con e senza esportazione
Definiamo una variabile con export
per renderlo disponibile a tutti i sottoprocessi (o processi figlio). Significato:se definisci una variabile con export
come di seguito,
export variable_name=value
La variabile è disponibile per qualsiasi sottoprocesso esegui da quel processo di shell.
Se definisci una variabile senza export
come di seguito,
variable_name=value
La variabile è limitata alla shell e non è disponibile per nessun altro processo secondario. Puoi usarlo per variabili temporanee e/o di ciclo.
Permettimi di mostrarti un esempio, così puoi capirlo meglio.
Permettetemi di definire una variabile denominata "ostechnix"
senza "export"
come di seguito:
$ ostechnix="Welcome to ostechnix.com blog!"
Ora mostra il valore usando il comando "eco":
$ echo $ostechnix
Visualizzerà il valore della variabile ostechnix:
Welcome to ostechnix.com blog!
Ora, avvia una nuova sessione della shell Bash eseguendo il seguente comando:
$ bash
Quindi, prova a visualizzare il valore della variabile ostechnix usando echo
comando:
$ echo $ostechnix

Vedere? Non restituisce nulla! Viene visualizzato solo un output vuoto. Quindi è dimostrato che quando definiamo una variabile senza export
, non sarà disponibile per i processi secondari.
Definiamo ancora la stessa variabile con export
opzione:
$ export ostechnix="Welcome to ostechnix.com blog!"
Visualizza il valore della variabile:
$ echo $ostechnix
Risultato di esempio:
Welcome to ostechnix.com blog!
Avvia una nuova sessione di shell:
$ bash
Riprova a visualizzare il valore della variabile:
$ echo $ostechnix
Ora restituirà il valore.

Quindi, l'esportazione rende la variabile disponibile per qualsiasi altro processo figlio in quell'ambiente shell.