[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