Sto cercando di capire l'utilizzo del comando export
.Comando di esportazione UNIX
Ho provato a utilizzare man export
, ma non esiste alcun manuale per questo comando.
Qualcuno può aiutarmi a comprendere l'utilizzo di export
in UNIX?
Sto cercando di capire l'utilizzo del comando export
.Comando di esportazione UNIX
Ho provato a utilizzare man export
, ma non esiste alcun manuale per questo comando.
Qualcuno può aiutarmi a comprendere l'utilizzo di export
in UNIX?
Quando si esegue un programma, il programma figlio eredita le sue variabili di ambiente dal genitore. Ad esempio, se $HOME
è impostato su /root
nella genitore, la variabile $HOME
del bambino viene impostata anche su /root
.
Si applica solo alle variabili di ambiente contrassegnate per l'esportazione. Se si imposta una variabile alla riga di comando come
$ FOO="bar"
Quella variabile non sarà visibile nei processi figli. A meno che non lo si esporta:
$ export FOO
È possibile combinare queste due affermazioni in uno solo in bash (ma non in sh vecchia scuola):
$ export FOO="bar"
Ecco un rapido esempio che mostra la differenza tra variabili esportate e non esportate. Per capire cosa sta accadendo, sappi che sh -c
crea un processo di shell figlio che eredita l'ambiente della shell madre.
$ FOO=bar
$ sh -c 'echo $FOO'
$ export FOO
$ sh -c 'echo $FOO'
bar
Nota: per ottenere aiuto sul guscio comandi incorporati utilizzano help export
. I built-in della shell sono comandi che fanno parte della shell piuttosto che eseguibili indipendenti come /bin/ls
.
Unix
I comandi env, impostare e visualizzazione printenv tutte le variabili di ambiente ei relativi 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 a quella variabile il nome come unico argomento del comando.
In Unix, i seguenti comandi possono anche essere utilizzati, 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 al this al
Benvenuti in StackOverflow. Si noti che la classica shell Bourne richiederebbe: 'VARIABILE = valore; esportare VARIABLE' piuttosto che assegnare ed esportare contemporaneamente.Il comando 'set' in C Shell è per variabili di shell piuttosto che variabili di ambiente; 'setenv' è la controparte di' export'. Il comando 'set' nelle shell derivate da Bourne stampa tutte le variabili, non solo le variabili esportate (ambiente). Almeno storicamente, il comando 'env' è 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. –
export
viene utilizzato per impostare le variabili d'ambiente. Per esempio:
export EDITOR=pico
imposterà il vostro editor di testo predefinito di essere il comando pico
.
export
è un comando incorporato di bash
shell e altri Bourne shell variants. Viene utilizzato per contrassegnare una variabile di shell per l'esportazione in processi figli.
è estremamente strano che non ci sia una pagina man per questo. Neanch'io ne vedo uno. – Pinocchio