[gl-como] Piccolo aiuto...

Pirla the.pirla@flashnet.it
Gio 10 Nov 2005 12:51:47 CET


Il giorno mer, 09/11/2005 alle 18.55 +0100, Fabio Comuni ha scritto:
> no no.. proprio
> $ echo "$data"
> 
> compreso di virgolette attorno a data
> 
> la bash prima risolve le variabili e poi chiama i programmi.
> echo scrive in stout quello che gli si passa come parametri.
> 
> se scrivi
> $ echo $data
> la bash chiamerà
> $ echo Sept     9
> 
Questa è la risposta migliore che ho letto, e in effetti non ci avevo
pensato.
Il tutto sta nel comprendere come la shell utilizza le variabili, ed in
questo caso anche il comando echo è soggetto alla interpretazione dei
parametri da parte della shell.

In pratica succede questo:
Se io scrivo 
	mv a b 
la shell chiama il comando mv e passa i due argomenti a e b ed il
risultato è che il file a viene rinominato in b
Se scrivo mv a     b
il risultato DEVE essere lo stesso, perché nella shell i parametri sono
separati da uno o più caratteri si spaziatura.

Se voglio che il numero di spazi sia significato nel parametro DEVO
racchiudere tra apici (doppi e singoli in alcuni casi è uguale) la
sequenza di caratteri che contiene gli spazi.

La variabile data settata con 
   data="Sep    9"
contiene tutto ciò che è racchiuso tra apici ma non contiene gli apici.
E non si tratta neanche di un array, ma di una stringa con degli spazi
in mezzo.

Quindi se voglio visualizzare tutti gli spazi (e in realtà tutto ciò che
contiene la variabile) devo utilizzare $data racchiusa tra doppi apici.
Infatti nel primo caso la shell compone il comando come
    echo Sep     9   -> Sep 9
Nel secondo caso compone il comando come echo "Sep    9" e quindi quello
che a te serve.

-- 
Ciao
        Pirla

Per rispondere in E-mail the (punto) pirla (chiocciola) flashnet.it
*** un bacio ai pupi ***

---> Linux user since yesterday <---
--->     Linux User #389536     <---




Maggiori informazioni sulla lista gl-como