Newsgroup: it.comp.os.linux.development
Titolo: Bash bug ?

Raga non vorrei sembrare presuntuoso ma forse ho scoperto
un baco di bash, guardate qua':
guido:~ $ cd dir_prova/
guido:~/dir_prova $ l
total 6
drwxr-xr-x   2 guido  users   512 May  7 13:34 .
drwxr-xr-x  35 guido  users  4608 May  7 13:33 ..
-rwxr-xr-x   1 guido  users     0 May  7 13:34 la_banda_bassotti
-rwxr-xr-x   1 guido  users     0 May  7 13:34 la_banda_bassotti_piu_
i_tre_porcellini
-rwxr-xr-x   1 guido  users     0 May  7 13:33 paperino
-rwxr-xr-x   1 guido  users     0 May  7 13:33 pippo
-rwxr-xr-x   1 guido  users     0 May  7 13:33 pippo_pippo
-rwxr-xr-x   1 guido  users     0 May  7 13:33 pluto
guido:~ $ cd ..
guido:~ $ VARIABILE=$(/bin/ls -F dir_prova/* )
guido:~ $ echo $VARIABILE
dir_prova/la_banda_bassotti 
dir_prova/la_banda_bassotti_piu_i_tre_porcellini 
dir_prova/la_banda_bassotti_piu_i_tre_porcellini 
dir_prova/paperino dir_prova/pippo 
dir_prova/pippo_pippo 
dir_prova/pippo_pippo 
dir_prova/pluto
guido:~ $ 
Nulla di strano ?
bye Guido

Nulla di strano ?
Li ho creati identici tutti: directory e file. Ottengo: (spezzata io)
dir_prova/la_banda_bassotti dir_prova/la_banda_bassotti_piu_i_tre_porcellini
dir_prova/paperino dir_prova/pippo dir_prova/pippo_pippo dir_prova/pluto
E la vedo uguale in memoria con set, guarda:
VARIABILE='dir_prova/la_banda_bassotti
dir_prova/la_banda_bassotti_piu_i_tre_porcellini
dir_prova/paperino
dir_prova/pippo
dir_prova/pippo_pippo
dir_prova/pluto'
GNU bash, version 2.03.0(1)-release (i386-pc-linux-gnu)
Copyright 1998 Free Software Foundation, Inc.
-- 
Ci sentiamo  |  Remigio Zedda  || Attenzione! campo "From:" alterato
ciao Remigio |                 ||==> E-mail: 
remi...@tiscalinet.it
-------------|      ..si` d'accordo.. ma con la Deb e` un'altra cosa!
/* Linux 2.2.17 su Debian GNU/Linux 2.2 Potato */

guido:~ $ VARIABILE=$(/bin/ls -F dir_prova/* )
?? intendo con il flag -f ed il path intero /bin/ls ?? vedrai
che sei fai cosi otterrai il mio medesimo risultato...
bye Guido

che sei fai cosi otterrai il mio medesimo risultato...
Guarda: al millimetro. Tutto identico, compreso per scrupolo il nome
della variabile VARIABILE. Ho anche lasciato lo spazio dopo *.
Ma questo granchio.. da te c'erano nomi duplicati eccetera, cosa
vorresti dire? Che anche da me dovrebbero venire cosi` no.
Ecco la versione di ls:
ls (GNU fileutils) 4.0l
Written by Richard Stallman and David MacKenzie.
Copyright (C) 1999 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


 vorresti dire? Che anche da me dovrebbero venire cosi` no.
si intendo che dovrebbe darti il mio stesso risultato perche':
guido:~ $ ls -F dir_prova/
la_banda_bassotti*                      pippo*
la_banda_bassotti_piu_i_tre_porcellini* pippo_pippo*
paperino*                               pluto*
in VARIABILE ci vanno a finire i duplicati perche' l'asterisco del
primo la_banda_bassotti* fa in modo che venga aggiunto anche il secondo
e successivamente anche il secondo viene aggiunto una seconda volta.
Me ne sono accorto dopo che avevo gia' scritto la prima mail...
bye guido

Me ne sono accorto dopo che avevo gia' scritto la prima mail...
Va be' buona notte.. nel tuo primo post hai anche dimenticato le stelle
in ogni file. Ho rifatto, in base a questo che dici ora, la directory
dir_prova cosi`: (:r!ls -l dir_prova/)
total 0
-rw-r--r--    1 rr       rr              0 May  9 23:24 pippo*
-rw-r--r--    1 rr       rr              0 May  9 23:24 pippo_pippo*
e finalmente mi da` il bug anche a me;-))
E` cosi` che dici? Ecco l'eco:
dir_prova/pippo* dir_prova/pippo_pippo* dir_prova/pippo_pippo*
E ora e` un'interessante esempio di ricorsivita` bloccata.
