Punto informatico Network
Canali
20100302180314_1839844981_20100302180245_695993566_TerminalMLI_spotlight.png

Alcune variabili di ambiente di Bash

23/04/2010
- A cura di
Linux & Open Source - Questa è una piccola "visita guidata" ad alcune delle più importanti "variabili d'ambiente" (environment variables) di Bash, la shell di default delle distribuzioni GNU/Linux moderne.

Tag

Passa qui con il mouse e visualizza le istruzioni per utilizzare i tag!

linux (1) , gnu/linux (1) , bash (1) .

Valutazione

  •  
Voto complessivo 4 calcolato su 19 voti

Generalmente...

[0] - Ad ogni variabile (tranne alcune di sola lettura come PPID e UID) può essere assegnato un nuovo valore, sebbene sia altamente sconsigliato per molte di esse (in particolare IFS e PATH).

[1] - Per leggere una qualsiasi delle variabili di ambiente, o una qualsiasi variabile di Bash, basta usarla come unico argomento di echo, anteponendo un simbolo del dollaro ( $) alla variabile stessa. Per esempio, se volessimo leggere il nome di rete del computer dovremmo scrivere echo $HOSTNAME.

[2] - Per assegnare un valore ad una variabile Bash (di sistema e non) vale la stessa regola di assegnazione di valori a variabili in linguaggi di programmazione come il C, ovvero VARIABILE=valore, avendo però cura di non lasciare spazi subito prima e subito dopo il segno di uguaglianza.

[3] - Per assegnare un valore stringa ad una variabile è necessario racchiudere la stringa tra doppi apici:

VARIABILE="stringa con spazi"

A meno che gli spazi non vengano preceduti da backslash:

VARIABILE=stringa\ con\ spazi

[4] - Esistono molte altre variabili d'ambiente oltre a quelle elencate qui. Se siete curiosi potete leggere la documentazione di Bash con man bash.

Particolarmente...

[5] - HOSTNAME è una semplice variabile, che Bash usa per sapere qual è il nome dell'host. Per cambiarla in modo definitivo è necessario usare il comando sudo hostname <nome_macchina>, sostituendo a <nome_macchina> il nome che volete dare al vostro PC. Il nuovo nome verrà adottato a partire dalla nuova istanza della shell.

[6] - SHLVL viene aumentato di 1 ogni volta che viene innestata una nuova istanza di Bash nel terminale corrente con su o chroot, o anche aprendo una nuova shell semplicemente richiamando bash. Il valore che le viene assegnato è un semplice indice, e SHLVL può assumere valori negativi:

SHLVL=-1

In questo caso, innestando una nuova shell nel terminale il valore di SHLVL salirà a 0. Il valore di SHLVL si azzera se si torna al login con exit, se si riavvia il sistema o se si chiude un terminale in X.

[7] - Assegnando un nuovo valore a HOME il comando cd vi porterà nella nuova cartella, se esiste. Il nuovo percorso HOME rimarrà attivo finchè non uscirete dall'istanza della shell corrente, e per renderlo definitivo dovrete esportarlo in uno script di avvio. Per default la HOME di un utente è sempre /home/<nome_utente>.

[8] - Contrariamente a quanto potreste pensare, assegnare un nuovo valore a PWD non significa spostarsi nella directory assegnata, ma semplicemente il cambiamento di una variabile, che influisce sul prompt se in esso è presente il riferimento \w o \W. (Consultate questo articolo per ulteriori informazioni sul prompt di Bash.) Potete cambiare PWD con un valore d'esempio:

PWD=/home

E vedrete soltanto cambiare il prompt, che visualizzerà il contenuto di PWD e non la directory corrente.

[9] - PPID è una variabile di sola lettura. Per cambiarla l'unico modo è uscire dalla shell con exit e richiamarne una nuova istanza, effettuando un nuovo login o aprendo un nuovo terminale testuale in X.

[10] - UID è una variabile di sola lettura. L'unico modo per cambiarla è agire tramite usermod, modificando l'user ID dell'utente in esame. L'user ID dell'utente root è sempre 0, è modificabile ma non vi consiglio di farlo.

[11] - Nel caso in cui voleste modificare PATH e aggiungere solo una directory (per esempio /temp), è consigliabile fare un semplice accodamento:

PATH=$PATH:/temp

Invece di riscrivere l'intera lista di directory.

Pagina successiva
Appendice: il comando export
Pagina precedente
Breve panoramica

 

Segnala ad un amico

Tuo nome Tuo indirizzo e-mail (opzionale)
Invia a:
    Aggiungi indirizzo email
    Testo

    © Copyright 2025 BlazeMedia srl - P. IVA 14742231005

    • Gen. pagina: 1.65 sec.
    •  | Utenti conn.: 54
    •  | Revisione 2.0.1
    •  | Numero query: 43
    •  | Tempo totale query: 0.14