venerdì 10 giugno 2011

Progetto Bash: Introduzione. Seconda parte

Introduzione, seconda parte: Le variabili.





Nel post precedente abbiamo visto:
  • cos'è una variabile
  • come si costruisce una variabile
  • come si fa per vedere il valore che abbiamo assegnato ad una variabile
  • come si fa per assegnare il valore di una variabile ad un'altra variabile (in modo che le due variabili abbiano lo stesso valore).

Oggi invece tratteremo i seguenti argomenti:
  • i tipi di variabile
  • differenza tra variabili stringa e variabili intere
  • variabili locali e variabili ambientali
  • come e perchè si esporta una variabile locale

Io e Lightuono, i vari post dedicati al progetto, li scriviamo tramite chat. Non potete neanche immaginare quanto ci divertiamo! :D

Giusto per curiosità vi postiamo due conversazioni tipo.

Light: Cosa hai mangiato oggi?
Bit: frittelle di fuori di zucca; e tu invece?
Light: Ho mangiato una bolognese!
Bit: Cosaaaa?
Light: ma è qualcosa di molto buono, un panino con dentro tutto il ben di Dio.
Segue l'invio da parte di light di mille link per aggiornarmi sulla bolognese. E più di mezz'ora va a farsi benedire! :D

Ancora,

Light: Ma hai capito quello che ho scritto? Dove sei finito? Ci sei?
Bit: Ogni tanto mi assento per ammazzare le mosche
Light: Ma perchè non usi l'elastico? così la caccia è più bella.
Bit: Li sto sparando con la pistola ad acqua; Stasera non avrò problemi
Light: Perchè non avrai problemi?
Bit: Stasera mangio pasta e fagioli.....Ti assicuro, lo mosche si terranno distante da me!

Torniamo alle variabili. :)

Abbiamo quattro tipi di variabile:

1. variabili stringa
2. variabili intere
3. variabili costanti
4. variabili matriciali

Per il momento ci soffermiamo solo sulle prime due.

La variabile intera è una variabile il cui valore è rappresentato da un numero.

e si scrive così

nome_variabile=numero

anno=2011
numero_civico=12
eta=23
mese=12

Ecco, queste sopra sono tutti esempi di variabili intere; che poi sono quelle che abbiamo visto nel post precedente

Le variabili stringa non variano di molto dalle variabili intere.

Vedete, questi sono esempi di variabili stringhe:

nome="Marco"
data="09/06/2011"
a="2"

A questo punto vi chiediamo:
Perchè queste due variabili sotto sono variabili stringa e non intere?

data="02/07/1984"
a="2"

Perchè ciò che differenzia una variabile stringa da una variabile intera è la presenza dei doppi apici "".

Ecco perchè anche a="2" è una variabile stringa e non una variabile intera! Mentre a=2 sarebbe stata una variabile intera.

Passiamo alle variabili Locali. Le variabili di cui abbiamo parlato fino a questo momento sono dette locali.

Le variabili locali sono quelle che vengono viste solo ed esclusivamente dalla shell dove si esegue lo script; e se vogliamo una variabile ambientale, la dobbiamo esportare! Chiaro! Nooooooooooo! Bene. :D

Lo sapevamo!! Ci tocca fare un'altro pò di teoria allora :D

se creiamo questo tipo di variabile

nome="Marco"

o quest'altra

numero_civico=12

entrambi queste variabili verranno viste solo dalla shell corrente. Ecco perchè si chiamano variabili locali.

Facciamo un esempio

aprite un terminale e scrivete
 
nome="marco" e premete invio

ora digitate

echo $nome e premete invio

Fin qui dovremmo esserci!

Se però apriamo una sottoshell, la variabile locale scompare.


facciamo un esempio

Senza chiudere il terminale, lanciamo una sottoshell col comando

bash

e subito dopo

echo $nome

Come potete vedere, in questo caso, la variabile locale è scomparsa.

Per farla restare, è necessario che la variabile locale diventi una variabile ambientale.

Pechè ciò avvenga è necessario esportarla.

Una variabile si esporta con il comando export più il nome della variabile;

così:

export nome_variabile


Facciamo un esempio

digitiamo exit per uscire dalla sottoshell

creiamo la variabile

nome="marco"

e poi

export nome

Ora, se digitiamo prima

bash

e poi

echo $nome

La variabile resta.

Perchè?

Perchè con export la variabile locale è diventata ambientale, cioè è vista non solo dalla shell ma anche dalla sottoshell (che abbiamo lanciato col comando bash)

Capisco che queste cose appaiono un pò astratte, ma vi assicuro che non è così. Per ora fidatevi di noi, in seguito queste cose ritorneranno molto utili.

Però ora digitiamo exit per uscire dalla sottoshell e chiudiamo il terminale.

 Per concludere il discorso sulle variabili è necessario un'altro post. La prossima volta, tra le tante cose, vedremo come creare ed esportare una variabile in un solo colpo.

Alla prossima :)

Lightuono & Bit3Lux

PS1. Come potete notare abbiamo cambiato anche il logo. E' molto più figo questo. Vero?

PS2. Domani pubblicheremo il primo post di pratica del progetto Bash, che troverete sul sito di Lightuono, vi raccomando di leggerlo. Quel post andrà ad integrare quello che è stato detto finora. :D

PS3 Entro domani il progetto sarà dotato anche di un indice che coordinerà i due blog. Sull'indice troverete, in modo ordinato, gli articoli teorici, quelli pratici, eventuali esercizi e Script da scaricare :D Ringrazio il caro amico Juhan per avercelo ricordato :))

3 commenti:

  1. haha come siete indietro con la tecnologia,io le mosche le ammazzo con l'accendigas fiamma regolata al max tipo lanciafiammeeee hehe

    RispondiElimina
  2. @Perscicli
    ahahahhahahahha Che bella idea che ci hai dato :D :D :D

    RispondiElimina