GNU/Linux >> Linux Esercitazione >  >> Linux

Come impostare una variabile di ambiente sulla riga di comando e farla apparire nei comandi?

Se corro

export TEST=foo
echo $TEST

Emette foo.

Se corro

TEST=foo echo $TEST

Non è così. Come posso ottenere questa funzionalità senza utilizzare l'esportazione o uno script?

Risposta accettata:

Questo perché la shell espande la variabile nella riga di comando prima esegue effettivamente il comando e in quel momento la variabile non esiste. Se usi

TEST=foo; echo $TEST

funzionerà.

export farà apparire la variabile nell'ambiente dei comandi eseguiti successivamente (per come funziona in bash vedere help export ). Se hai solo bisogno che la variabile appaia nell'ambiente di un comando, usa ciò che hai provato, ovvero:

TEST=foo your-application

La sintassi della shell lo descrive come funzionalmente equivalente a:

export TEST=foo
your-application
unset TEST

Vedere le specifiche per i dettagli.

La parte interessante è che l'export comando cambia il flag di esportazione per la variabile nome . Quindi se lo fai:

unset TEST
export TEST
TEST="foo"

TEST verrà esportato anche se non era definito al momento dell'esportazione. Tuttavia, ulteriormente unset dovrebbe rimuovere l'attributo export da esso.


Linux
  1. Avere una mucca sulla riga di comando di Linux

  2. Variabili d'ambiente Linux:come leggere e impostare su un VPS Linux

  3. Suggerimenti/trucchi per la navigazione della riga di comando di Linux 3 - la variabile d'ambiente CDPATH

  4. Suggerimenti per la navigazione della riga di comando di Linux:le basi dei comandi pushd e popd

  5. Come vengono interpretate le parentesi sulla riga di comando?

Come impostare ed elencare le variabili di ambiente in Linux

Come aggiungere comandi Linux alla coda ed eseguirli uno per uno

Come impostare e annullare l'impostazione delle variabili di ambiente su Linux

Come impostare la variabile d'ambiente in Bash

Come impostare il browser predefinito dalla riga di comando?

MySQL la riga di comando e i cercapersone