Workstation online OnWorks Linux e Windows

Logo

Hosting online gratuito per workstation

<Precedenti | Contenuti | Succ.>

Variabili e costanti

Tuttavia, c'è un problema con il nostro script. Notate come la stringa "System Information Report" si ripeta? Con il nostro piccolo script non è un problema, ma immaginiamo che il nostro script sia molto lungo e che questa stringa sia presente in più istanze. Se volessimo cambiare il titolo, dovremmo modificarlo in più punti, il che potrebbe richiedere molto lavoro. E se potessimo organizzare lo script in modo che la stringa appaia una sola volta e non più volte? Questo renderebbe la futura manutenzione dello script molto più semplice. Ecco come potremmo farlo:



#! / Bin / bash


# Programma per generare una pagina di informazioni di sistema


titolo="Rapporto informativo di sistema"


eco "

$titolo

$titolo

"

#! / Bin / bash


# Programma per generare una pagina di informazioni di sistema


titolo="Rapporto informativo di sistema"


eco "

$titolo

$titolo

"


Creando un variabile detto titolo e assegnandogli il valore “System Information Report”, possiamo sfruttare l’espansione dei parametri e posizionare la stringa in più posizioni.

Quindi, come si crea una variabile? Semplice, la si usa e basta. Quando la shell incontra una variabile, la crea automaticamente. Questo differisce da molti linguaggi di programmazione in cui le variabili devono essere definite esplicitamente. dichiarata o definito prima dell'uso. La shell è molto permissiva su questo aspetto, il che può causare alcuni problemi. Ad esempio, si consideri questo scenario eseguito sulla riga di comando:


[io@linuxbox~]$ foo="sì" [io@linuxbox~]$ echo $foo

[io@linuxbox~]$ echo $fool


[io@linuxbox~]$

[io@linuxbox~]$ foo="sì" [io@linuxbox~]$ echo $foo

[io@linuxbox~]$ echo $fool


[io@linuxbox~]$


Per prima cosa assegniamo il valore “sì” alla variabile foo, e quindi visualizzarne il valore con ecoSuccessivamente visualizziamo il valore del nome della variabile scritto erroneamente come "fool" e otteniamo un risultato vuoto. Questo perché la shell ha creato felicemente la variabile ingannare quando lo ha incontrato, e gli ha assegnato il valore predefinito "nothing", ovvero "vuoto". Da questo, impariamo che dobbiamo prestare molta attenzione all'ortografia! È anche importante capire cosa è realmente accaduto in questo esempio. Dalla nostra precedente analisi di come la shell esegue le espansioni, sappiamo che il comando:



[io@linuxbox ~]$ echo $foo

[io@linuxbox ~]$ echo $foo


subisce un'espansione dei parametri e si traduce in:



[me@linuxbox ~]$ echo sì

[me@linuxbox ~]$ echo sì


Considerando che il comando:



[io@linuxbox ~]$ echo $sciocco

[io@linuxbox ~]$ echo $sciocco


si espande in:



[io@linuxbox ~]$ echo

[io@linuxbox ~]$ echo


La variabile vuota si espande nel nulla! Questo può creare problemi con i comandi che richiedono argomenti. Ecco un esempio:



[io@linuxbox~]$ foo=foo.txt [io@linuxbox~]$ foo1=foo1.txt [io@linuxbox~]$ cp $foo $fool

cp: manca l'operando del file di destinazione dopo `foo.txt'

[io@linuxbox~]$ foo=foo.txt [io@linuxbox~]$ foo1=foo1.txt [io@linuxbox~]$ cp $foo $fool

cp: manca l'operando del file di destinazione dopo `foo.txt'


Per maggiori informazioni, prova `cp --help'.

Per maggiori informazioni, prova `cp --help'.


Assegniamo valori a due variabili, foo e pippo1. Eseguiamo quindi un cp, ma scrive male il nome del secondo argomento. Dopo l'espansione, il cp al comando viene inviato un solo argomento, anche se ne richiede due.

Esistono alcune regole sui nomi delle variabili:

1. I nomi delle variabili possono essere costituiti da caratteri alfanumerici (lettere e numeri) e caratteri di sottolineatura.

2. Il primo carattere del nome di una variabile deve essere una lettera o un carattere di sottolineatura.

3. Non sono ammessi spazi e segni di punteggiatura.

Il termine "variabile" implica un valore che cambia e, in molte applicazioni, le variabili vengono utilizzate in questo modo. Tuttavia, la variabile nella nostra applicazione, titolo, è usato come un costanteUna costante è proprio come una variabile in quanto ha un nome e contiene un valore. La differenza è che il valore di una costante non cambia. In un'applicazione che esegue calcoli geometrici, potremmo definire PI come costante e assegnargli il valore di 3.1415, invece di usare il numero letteralmente in tutto il nostro programma. La shell non fa distinzione tra variabili e costanti; queste sono principalmente per comodità del programmatore. Una convenzione comune è quella di usare lettere maiuscole per designare le costanti e lettere minuscole per le variabili vere e proprie. Modificheremo il nostro script per rispettare questa convenzione:



#! / Bin / bash

# Programma per generare una pagina di informazioni di sistema TITOLO="Rapporto informativo di sistema Per $HOSTNAME" eco "

$TITOLO

$TITOLO

"

#! / Bin / bash

# Programma per generare una pagina di informazioni di sistema TITOLO="Rapporto informativo di sistema Per $HOSTNAME" eco "

$TITOLO

$TITOLO

"


Abbiamo anche colto l'occasione per abbellire il nostro titolo aggiungendo il valore della variabile shell

HOSTNAME. Questo è il nome di rete della macchina.


Immagine

Note:: La shell in realtà fornisce un modo per imporre l'immutabilità delle costanti, attraverso l'uso di dichiarare comando incorporato con il -r (opzione di sola lettura). Se avessimo assegnato TITOLO per di qua:


dichiara -r TITLE="Titolo della pagina"


la shell impedirebbe qualsiasi successiva assegnazione a TITOLOQuesta funzionalità è raramente utilizzata, ma esiste per gli script molto formali.


Immagine


 

Il miglior sistema operativo cloud computing su OnWorks: