On Wed, 1 Oct 2008 10:36:36 +0200 Renato Conotter <conotter@xxxxxxxxx> wrote: > E già che ci siamo che differenza c'è tra " e ' Come già spiegato da Flavio, delimitare una stringa di caratteri con le virgolette (singole o doppie) fa sì che la shell "veda" un singolo parametro, anche quando la stringa contiene degli spazi. Se si usano le virgolette doppie, vengono comunque espanse eventuali variabili (introdotte dal simbolo $) e altre amenità (come i "backtip", o apici inversi, che eseguono il sottocomando delimitato che viene sostituito dall'output del comando stesso), mentre con usando gli apici (l'apostrofo) praticamente tutte le espansioni vengono inibite. Ad esempio: $ cd /tmp # $ ls claws-mail-1000 emacs1000 gconfd-lele ns.lele.:0 # # Con i backtip, `ls` viene sostituito dall'output del comando $ lista=`ls` # # Ora "lista" contiene l'output di ls, cioè un elenco di nomi # di file, *separati* da newline: essendo quest'ultimo # interpretato dalla shell come separatore (vedi IFS), un # "echo" della lista li elenca in fila, sulla stessa riga $ echo $lista claws-mail-1000 emacs1000 gconfd-lele ns.lele.:0 # # Racchiudendo il parametro tra doppie virgolette, il comando # "echo" riceve *un solo* argomento, che una volta stampato # a schermo riflette il fatto che i nomi sono separati da un # "a capo" $ echo "$lista" claws-mail-1000 emacs1000 gconfd-lele ns.lele.:0 # # Racchiudendolo invece tra singoli apici, il parametro non # viene espanso in alcun modo $ echo '$lista' $lista # # Una banale funzione che emette il conteggio degli argomenti $ funzione() { > echo "Numero argomenti: $#" > } # # Qui abbiamo tre parametri $ funzione a b c Numero argomenti: 3 # # Qui uno solo $ funzione "a b c" Numero argomenti: 1 # $ funzione $lista Numero argomenti: 4 # $ funzione "$lista" Numero argomenti: 1 # # Qui la shell espande i parametri, *prima di eseguire il comando* $ funzione * Numero argomenti: 4 # # Qui no $ funzione "*" Numero argomenti: 1 Vedi http://www.network-theory.co.uk/docs/bashref/DoubleQuotes.html e precedente. ciao, lele. -- nickname: Lele Gaifax | Quando vivrò di quello che ho pensato ieri real: Emanuele Gaifas | comincerò ad aver paura di chi mi copia. lele@xxxxxxxxxxxxxxxxxxx | -- Fortunato Depero, 1929. -- Per iscriversi (o disiscriversi), basta spedire un messaggio con OGGETTO "subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx