L'articolo precedentemente pubblicato da Fahmida Yesmin [4] ti dà una meravigliosa introduzione nelle variabili bash. Qui facciamo un passo avanti e spieghiamo come dichiarare variabili in bash in modo tale da poterle usare in altri ambienti sul tuo sistema Linux e quali corrispondenti effetti collaterali devi prendere in considerazione.
Una breve descrizione di Bash
La shell bash è stata rilasciata per la prima volta nel 1989 ed è stata utilizzata come shell di accesso predefinito per la maggior parte delle distribuzioni Linux. Brian Fox ha scritto Bash come shell UNIX e lingua di comando per il progetto GNU come sostituzione del software libero per la shell Bourne. È un acronimo per Bourne di nuovo Shell. Bash è in gran parte compatibile con sh e incorpora caratteristiche utili dalla shell di Korn Ksh e il guscio C CSH [6].
Mentre il sistema operativo GNU fornisce altre shell, inclusa una versione di CSH, Bash è la shell interattiva predefinita. È progettato pensando alla portabilità e attualmente funziona su quasi ogni versione di UNIX più altri sistemi operativi [9].
Variabili bash in breve
Le variabili sono componenti essenziali dei linguaggi di programmazione. Sono referenziati e manipolati in un programma per computer. In poche parole, le variabili rappresentano celle di memoria nominate. Questo è lo stesso in bash come in qualsiasi linguaggio di programmazione. Questo ci rende possibile come esseri umani e utenti del computer di archiviare i valori nel "cervello" del computer e ritrovarli tramite il nome assegnato della variabile.
Il termine variabile si riferisce a una forma combinata di due parole, i.e., Vary + capace, il che significa che il suo valore può essere modificato e può essere utilizzato più volte. Contrariamente a questo, le variabili che non possono essere modificate sono chiamate costanti. [10]
Finché è disponibile una memoria sufficiente per il tuo script, puoi creare liberamente e utilizzare le variabili. Puoi semplicemente impostarli definendo un nome variabile e quindi assegnando il suo valore. Un nome variabile in bash può includere lettere, cifre e sottoti. Il suo nome può essere avviato con una lettera e un sottolineaggio, solo. I nomi delle variabili validi sono dimensioni, tax5 e _tax20 ma non 5rules.
Un valore variabile in bash può contenere un numero, un singolo carattere, una stringa di caratteri o un elenco di elementi (chiamato array). Non ha un tipo di dati visibile e il tipo di dati interno della variabile verrà automaticamente capito (o derivato) al momento dell'assegnazione di un valore. Inoltre, non è necessario dichiarare la variabile: l'assegnazione di un valore al suo riferimento creerà automaticamente la variabile. Lo script Bash Esempio seguente lo dimostra per un compito di stringa e un numero di numeri numerici.
#! /Bin/Bash
WelcomeMessage = "Hello World!"
Echo $ WelcomeMessage
Prezzo = 145
Echo $ Price
Convenzioni di denominazione delle variabili bash
Non ci sono regole fisse per l'ortografia dei nomi delle variabili, solo convenzioni. Queste convenzioni sono usate:
Per le aziende IT globali è comune lavorare con guide di stile per garantire uno stile di codifica comune tra l'azienda. Consulta l'editoriale degli sviluppatori per IBM e la Guida allo stile di Google [3] per ulteriori informazioni sulle convenzioni che seguono.
Visibilità variabile
Il caso predefinito è che una variabile è localmente legata a una struttura, funzione, script o processo e non può essere accessibile dall'esterno. L'esempio seguente mostra questo per il messaggio $ variabile che appartiene allo script e $ benvenuto che appartiene alla funzione outputwelcomemessage ().
#!/Bin/Bash
# Definisci un messaggio variabile allo script
messaggio = "ciao, di nuovo!"
outputWelCeMessage ()
# Definisci una variabile locale
benvenuto = "ciao!"
Echo $ benvenuto
outputwelcomeMessage () # stampa ciao!
echo $ message # stampa ciao, di nuovo!
Per assicurarsi che una variabile precedentemente definita con lo stesso nome sia rilegata localmente, utilizzare la parola chiave locale come dimostrato successivo. Senza la parola chiave locale, l'assegnazione nella riga 8 si riferisce alla variabile definita a livello globale con lo stesso nome definito in precedenza.
#!/Bin/Bash
# Definisci un messaggio variabile allo script
messaggio = "ciao, di nuovo!"
outputWelCeMessage ()
# Definisci una variabile locale con lo stesso nome
Messaggio locale = "ciao!"
Messaggio Echo $
outputwelcomeMessage () # stampa ciao!
echo $ message # stampa ciao, di nuovo!
Estendendo l'ambito di una variabile
Al fine di rendere una variabile interna visibile ad altri processi figlio è necessario un ulteriore passo. Questo passaggio si chiama esportazione di una variabile. Bash offre l'uso dell'esportazione di parole chiave seguita dal nome variabile. L'elenco seguente lo dimostra per il backuppath variabile.
$ backuppath = "/opt/backup/"
$ Export BackupPath
Il comando di esportazione è una shell incorporata che viene utilizzata per definire la variabile come quella che subsca (shell generate dall'originale) eredita. Le variabili che vengono esportate possono essere lette e scritte da più di un processo, quindi.
La seconda opzione è di dichiarare la variabile come variabile di ambiente dall'inizio. Puoi farlo utilizzando la parola chiave dichiara seguita dall'opzione "-x" (vedi [5] per maggiori informazioni sul comando dichiara). L'effetto è simile al comando di esportazione introdotto prima.
$ dichiara -x backuppath = "/opt/backup/"
Ereditare da altre sessioni
Quando si esegue un programma, eredita automaticamente le sue variabili di ambiente dal processo genitore. Ad esempio se $ home è impostato su /root nel genitore, anche la variabile di $ home del figlio è impostata su /root.
Ulteriori comandi
Tra gli altri, Linux viene fornito con comandi e opzioni utili relative alle variabili. I primi due sono chiamati Env e Printenv. Elencano tutte le variabili di ambiente.
L'immagine seguente mostra l'output di comando env in un terminale che viene eseguito in una sessione X. Contiene variabili come $ xterm (tipo terminale), $ shell (il programma che viene chiamato al login e mostra /bin /bash per il percorso dell'interprete Bash), $ ls_colors (i colori in uso per evidenziare diversi file per evidenziare un file diverso Tipi quando si chiama LS) e $ Desktop_session (l'attuale ambiente Desktop).
Il terzo e il quarto sono le opzioni del comando di esportazione --p e -n. -P è abbreviato per la stampa e visualizza solo tutte le variabili esportate nella shell corrente usando il comando dichiara.
$ Export -P
dichiara -x desktop_session = "xfce"
dichiara -x display = ": 0"
dichiara -x glade_catalog_path = ":"
dichiara -x glade_module_path = ":"
dichiara -x glade_pixmap_path = ":"
dichiara -x home = "/home/frank"
dichiarare -x lang = "de_de.UTF-8 "
L'opzione -n viene utilizzata per sconfiggere una variabile di ambiente. L'elenco seguente lo dimostra per il backuppath variabile precedentemente definito.
$ esportazione -n backuppath
Conclusione
Bash è un ambiente molto intelligente ma a volte anche un po 'complesso. Le variabili controllano come interagiscono i diversi strumenti. L'esportazione di variabili aiuta a comunicare tra i processi ed è facile da usare nella vita di tutti i giorni.
Riguardo agli Autori
Jacqui Kabeta è un ambientalista, avido ricercatore, allenatore e mentore. In diversi paesi africani ha lavorato nell'industria IT e negli ambienti delle ONG.
Frank Hofmann è uno sviluppatore IT, un trainer e autore e preferisce lavorare da Berlino, Ginevra e Città del Capo. Co-autore del libro di gestione dei pacchetti Debian disponibile da DPMB.org
Collegamenti e riferimenti