GNU/Linux >> Linux Esercitazione >  >> Linux

Differenza tra la definizione di variabili Bash con e senza esportazione

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.


Linux
  1. Differenza tra "e" sulla riga di comando (bash)??

  2. Differenza tra variabili Shell che vengono esportate e quelle che non sono in Bash?

  3. La differenza di utilizzo tra variabili Shell e variabili d'ambiente?

  4. Differenza tra Snat e Masquerade?

  5. Definizione di una variabile con o senza esportazione

Variabile di esportazione Bash

Bash Scripting:variabili spiegate con esempi

Esercitazione sulle variabili Bash:6 esempi pratici di variabili globali e locali Bash

Qual è la differenza tra &> e >&in bash?

Differenza tra i comandi nello script bash e i comandi nel terminale

Qual è la differenza tra $(CC) e $CC?