Comando di esportazione UNIX [chiuso]


158

Sto cercando di capire l'uso del exportcomando.

Ho provato a usare man export, ma non esiste un manuale per questo comando.

Qualcuno può aiutarmi per favore a capire l'uso di exportin UNIX?


è estremamente strano che non ci sia una pagina man per questo. Neanche io ne vedo uno.
Pinocchio,

Risposte:


226

Quando si esegue un programma, il programma figlio eredita le sue variabili di ambiente dal padre. Ad esempio, se $HOMEè impostato su /rootnel genitore, anche la $HOMEvariabile del bambino è impostata su /root.

Questo vale solo per le variabili di ambiente contrassegnate per l'esportazione. Se si imposta una variabile nella riga di comando come

$ FOO="bar"

Quella variabile non sarà visibile nei processi figlio. A meno che non lo esporti:

$ export FOO

Puoi combinare queste due affermazioni in una sola in bash (ma non in sh di vecchia scuola):

$ export FOO="bar"

Ecco un breve esempio che mostra la differenza tra variabili esportate e non esportate. Per capire cosa sta succedendo, sappi che sh -ccrea un processo shell figlio che eredita l'ambiente della shell genitore.

$ FOO=bar
$ sh -c 'echo $FOO'

$ export FOO
$ sh -c 'echo $FOO'
bar

Nota: per ottenere assistenza sui comandi integrati della shell, utilizzare help export. Gli incorporati della shell sono comandi che fanno parte della tua shell piuttosto che come eseguibili indipendenti /bin/ls.


16

Unix

I comandi env, set e printenv visualizzano tutte le variabili di ambiente e i loro valori. env e set sono anche usati per impostare variabili d'ambiente e sono spesso incorporati direttamente nella shell. printenv può anche essere usato per stampare una singola variabile dando quel nome di variabile come unico argomento al comando.

In Unix possono anche essere usati i seguenti comandi, ma spesso dipendono da una determinata shell.

export VARIABLE=value  # for Bourne, bash, and related shells
setenv VARIABLE value  # for csh and related shells

Si può avere uno sguardo a questo a


4
Benvenuto in StackOverflow. Si noti che la classica shell Bourne richiederebbe: VARIABLE=value; export VARIABLEpiuttosto che assegnare ed esportare contemporaneamente. Il setcomando in C Shell è per le variabili della shell anziché per le variabili di ambiente; setenvè la controparte di export. Il setcomando nelle shell derivate da Bourne stampa tutte le variabili, non solo le variabili esportate (ambiente). Almeno storicamente, il envcomando è separato dalla shell (non un built-in), sebbene possa essere facilmente trasformato in un built-in. Imposta l'ambiente per un comando specifico, non la shell che lo esegue.
Jonathan Leffler,


0

exportviene utilizzato per impostare le variabili di ambiente. Per esempio:

export EDITOR=pico

Imposta il tuo editor di testo predefinito come picocomando.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.