[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: possibile bug in gnome-terminal?



Il gio, 2003-08-28 alle 13:52, Leonardo Canducci ha scritto:
> > Si', gnome-terminal resetta $PATH.
> 
> lo resetta a cosa? al path di gdm?

A che cosa non lo so. Come dicevo nel seguito, le ipotesi piu' probabili
sono l'eredita' dal padre oppure la $PATH che ho definito "di default di
gnome", che voleva riferirsi a quella impostata in gdm. Comunque se fai
un po' di prove dovresti scoprirlo.

> comunque se apro un gt e faccio:
> leo@cervellone:~$ echo $PATH
> /home/leo/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
> il PATH è giusto.

Questo perche' e' stata ulteriormente modificata dalla shell. Quando
dico che gt resetta la $PATH, intendo _prima_ dell'esecuzione del
comando|shell, il quale a sua volta puo' ulteriormente modificare la
variabile.

Fai cosi':
- resetta l'opzione 'esegui come shell di login' dal profilo di default
di gt
- entra in una shell
- modifica a tuo piacere $PATH in modo da renderla riconoscibile ed
esportala
- dai un echo $PATH per essere sicuro
- accertati che ~/.bashrc non modifichi $PATH ed eventualmente fai le
modifiche del caso
- esegui `/bin/bash`
- in questa nuova shell dai `echo $PATH`. Dovresti avere ereditato $PATH
dalla shell padre
- esci da questa nuova shell
- sempre dalla shell con $PATH modificata esegui `gnome-terminal -e
/bin/bash`
- in quest'ulteriore shell esegui `echo $PATH`. Dovresti avere un
risultato diverso. Questo perche' la shell continua ad ereditare $PATH
dal padre, pero' in questo caso il padre e' gt, che prima
dell'esecuzione della shell ha resettato $PATH
- rimetti le cose a posto :)

> > In entrambi i casi dovresti risolvere modificando $PATH in gdm.conf.
> 
> direi che è la soluzione. mi piaceva di più gestirlo utente per utente
> con un file tipo .bashrc, ma pazienza. posso usare .gnomerc, per caso?

Non lo. Forse il metodo piu' semplice e' tramite i gli script di
sessione.

> > Qua si aggiunge un altro problema. Anche modificando .bashrc il tuo
> > "echo $PATH " non ha gli effetti che ti aspetti perche' il tuo script e'
> > eseguito da /bin/sh (e non /bin/bash) che molto probabilmente e' un link
> > a /bin/(d|)ash. Ovviamente `man ash` per approfondimenti sui file di
> > inizializzazione di (d|)ash (brevemente: ~/.profile e un file riferito
> > da $ENV{ENV}).
> per me è arabo... comunque: 
> leo@cervellone:~$ ll `which bash`
> -rwxr-xr-x    1 root     root         675K 2003-06-07 06:17 /bin/bash
> ma non credo sia questo il problema.

ls -l /bin/sh

sono pressoche' sicuro si tratti di un link a /bin/(dash|ash)

> la motivazione per cui tendo a considerarlo un bug è che con konsole
> questo problema non c'è.

Onestamente non mi pare una motivazione sufficiente, anche perche' cosi'
come fai a sapere che non si tratti di un bug di konsole?
I bug devono avere alcune caratteristiche di cui ancora non vedo
evidenza in questo caso (il che' *non* vuol dire che non sia
effettivamente un bug).

Ti faccio un esempio che faccio spesso per distinguere fra bug e
"feature".

gpiero@cancan:~$ mkdir test
gpiero@cancan:~$ cd test/
gpiero@cancan:~/test$ echo $SHELL
/bin/bash
gpiero@cancan:~/test$ locale
LANG=it_IT@euro
[..]
LC_COLLATE=it_IT@euro
[...]
gpiero@cancan:~/test$ touch a b y z A B Y Z
gpiero@cancan:~/test$ ls [A-Z]*
A  b  B  y  Y  z  Z
gpiero@cancan:~/test$ ls [a-z]*
a  A  b  B  y  Y  z
gpiero@cancan:~/test$ export LC_COLLATE=C
gpiero@cancan:~/test$ ls [A-Z]*
A  B  Y  Z
gpiero@cancan:~/test$ ls [a-z]*
a  b  y  z

Ti lascio immaginare cosa succede usando rm invece di ls (ed in realta'
io me ne sono accorto proprio cosi').
Tutte (o almeno tutte quelle che ho provato) le altre shell non usano
LC_COLLATE per il pattern matching, eppure questo non basta a renderlo
un bug (beh, anche perche' il comportamento e' chiaramente descritto in
man bash ;) ). 

> me ne sono accorto perchè uso uno scriptino che
> tengo in ~/bin per leggere gli allegati con un determinato programma (che 
> passo come argomento) in mutt.

e qua la soluzione migliore e' mettere il path completo nell'invocazione

> non l'ho mai intesa come tale, anzi mi fa piacere ricevere una risposta
> così dettagliata e competente.

che ruffiano ;)

Ciao,
Gian Piero.



Reply to: