Re: Nom du shell courant

トップ ページ

このメッセージに返信
著者: Guillaume Allegre
日付:  
To: guilde
題目: Re: Nom du shell courant
Le Wed 18 Feb 2009 à 16:24 +0100, Stephane Bonhomme a ecrit :
> Tiens c'est étrange sur mon linux (debian), csh connait $0
>
> Du coup j'ai fouillé un peu :
>
> waloo@citrouille:~$ which csh
> /bin/csh
> waloo@citrouille:~$ ls -l /bin/csh
> lrwxrwxrwx 1 root root 21 mar 14 2008 /bin/csh -> /etc/alternatives/csh
> waloo@citrouille:~$ ls -l /etc/alternatives/csh
> lrwxrwxrwx 1 root root 9 mar 14 2008 /etc/alternatives/csh -> /bin/tcsh
> waloo@citrouille:~$ ls -l /bin/tcsh
> lrwxrwxrwx 1 root root 13 mar 14 2008 /bin/tcsh -> /usr/bin/tcsh
> waloo@citrouille:~$ ls -l /usr/bin/tcsh
> -rwxr-xr-x 1 root root 348224 jui 3 2006 /usr/bin/tcsh


un peu tard, mais j'ai envie de jouer aussi :
si tu es pressé, y'a plus rapide
$ readlink -f /bin/csh
/usr/bin/tcsh

et si tu veux la liste des liens successifs, pour le fun :
$ F=/bin/csh ; while ( readlink $F ) ; do F=`readlink $F` ; done
/etc/alternatives/csh
/bin/tcsh
/usr/bin/tcsh


> tiens tiens en fait csh est un tcsh qui se fait passer pour csh... mais
> du coup :
>
> waloo@citrouille:~$ csh
> citrouille:~> echo $0
> csh
>
> et :
> citrouille:~> ps -e | grep $$ | nawk '{ print $4; }'
> csh
>
> se trompent tout autant !!! j'utilise tcsh pas csh !


je propose :
$ ps -p $$ -o "comm="
csh

mais si on veut être sûr de récupérer l'exécutable réel, sous Linux :
$ readlink -f /proc/$$/exe
/usr/bin/tcsh


Ici, on joue dans une zone floue : on utilise ps, qui est un utilitaire
unix "standard", mais qui existe en de nombreuses implémentations.
La mienne (Debian Lenny) : procps 3.2.7-3
Et on repose sur /proc, qui dépend directement du noyau de l'OS.
Aucune idée de ce que ça donne sous Solaris.


PS : bizarre, vu l'heure de ta réponse, je me serais plutôt attendu à un prompt
waloo@carosse:~$


-- 
 ° /\    Guillaume Allègre            Membre de l'April
  /~~\/\   Allegre.Guillaume@???  Promouvoir et défendre le logiciel libre
 /   /~~\    tél. 04.76.63.26.99      http://www.april.org