[Linux-Biella] Bash programming

Daniele Segato daniele.bilug a gmail.com
Mer 24 Ago 2011 18:08:03 CEST


On Wed, 2011-08-24 at 17:35 +0200, Paolo Ciarrocchi wrote:
> 2011/8/24 Daniele Segato <daniele.bilug a gmail.com>:
> > ma secondo me, la cosa più utile da capire è la sintassi degli if:
> >
> > if [ ... ] ; then ... else ... fi
> 
> Mi e' abbastanza chiara anche se non la uso da _troppo_ tempo.
> 
> Un esempio:
>   #!/bin/bash
>             T1="foo"
>             T2="bar"
>             if [ "$T1" = "$T2" ]; then
>                 echo expression evaluated as true
>             else
>                 echo expression evaluated as false
>             fi
> 
> le variabili nel test [] devono essere racchiuse da doppi apici?

l'altra cosa importante da capire è come funzionano le stringhe


allora...

tieni questa norma come "best practice": "${T1}"

sempre usare la notazione ${...} quando scrivi una variabile

e se questa può contenere spazi sempre metterla tra apici doppi

ora ti spiego...
immagina di voler confrontare "hello world" con "${qualcosa}"


se scrivessi:

test hello world = "${qualcosa}"


l'interprete bash interpreta "hello" come un parametro e subito dopo
trova "world"


oppure...

se una stringa è una stringa vuota pens ache non sia stato fornito alcun
parametro

questo è il motivo per cui servono gli apici


http://wiki.bash-hackers.org/syntax/quoting


invece mettere le grafe ti assicura che non vengano mal interpretate:

x="something"
echo "$xmore text"

bash interpreta la variabile come ${xmore}

se invece scrivi echo "${x}more text" ovviamente funziona come ti
aspetti :)



Maggiori informazioni sulla lista Linux