Introduzione
Le variabili shell sono coppie chiave-valore utilizzate per memorizzare dati di configurazione importanti per la shell. Dato che una variabile è solo un puntatore a un dato, può contenere un riferimento a qualsiasi tipo di dati:un nome, un numero, un nome file o anche un'altra variabile.
Tutte le variabili che l'utente definisce all'interno della shell bash sono locali per impostazione predefinita. Significa che i processi figlio della shell non ereditano le variabili della shell. L'utente deve esportare le variabili per renderle disponibili ai processi figlio.
Questo tutorial ti mostrerà come esportare variabili Bash in Linux usando export
comando.
Prerequisiti
- Accesso al terminale/riga di comando.
- La shell bash.
Cosa fa il comando di esportazione in Bash?
Le variabili in Bash vengono create usando il comando dichiara o semplicemente digitando la coppia chiave-valore nella shell. Ad esempio, per creare una variabile denominata test
, che ha un valore stringa di example
, digita:
test="example"
Per vedere il valore di una variabile, usa il comando echo:
echo $test
Il valore appare nell'output:
Tuttavia, la variabile creata in questo modo si applica solo alla sessione della shell corrente. Per verificarlo, apri una shell figlio digitando:
bash
Usa echo
per controllare la variabile.
echo $test
L'output è vuoto perché la variabile test
ha un valore solo nella shell padre. È necessario esportare una variabile per essere utilizzata nei processi figlio.
Anche l'esportazione di variabili è importante per gli script Bash. L'esempio seguente crea uno script denominato test-script.sh
che mostra il valore del test
variabile.
1. Crea il file utilizzando un editor di testo come nano:
nano test-script.sh
2. Digita quanto segue nel file:
#!/bin/bash
echo $test
3. Salvare il file ed uscire.
4. Modificare le autorizzazioni del file per consentirne l'esecuzione:
chmod u+x test-script.sh
5. Esegui lo script:
./test-script.sh
Lo script restituisce un output vuoto.
L'output è vuoto perché lo script viene eseguito in una shell figlio che viene automaticamente aperta all'esecuzione dello script.
Come esportare la variabile Bash
La sintassi per l'export
il comando è semplice:
export [variable-name]
L'esempio seguente conferma che il test
la variabile esiste anche dopo aver usato bash
per avviare una nuova sessione di shell.
Gli script ora hanno anche accesso alla variabile. Esegui di nuovo lo script creato in precedenza.
./test-script.sh
Ora emette correttamente il valore di test
.
Funzioni di esportazione
Usa l'export
comando per esportare le funzioni bash.
1. Ad esempio, crea una funzione bash chiamata echoVar
:
function echoVar
2. La funzione chiama echo
per visualizzare il valore del test
variabile:
{
echo "The value of the test variable is: "$test
}
3. La funzione può ora essere chiamata con il suo nome per visualizzare il valore della variabile. Per rendere disponibile la funzione nei processi figlio, digitare:
export -f echoVar
La funzione è ora disponibile nelle shell figlio.
Visualizzazione di tutte le variabili esportate
Quando l'export
comando viene emesso senza argomenti, visualizza l'elenco di tutte le variabili. Per esportare tutte le variabili elencate in processi figlio, utilizzare il -p
opzione.
export -p
Le due variabili create in questo articolo si trovano in fondo all'output.
Per annullare l'effetto di export -p
, usa il -n
opzione.
export -n
Le variabili sono di nuovo limitate alla sessione della shell corrente.