Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

which

28 réponses
Avatar
Thomas
bonjour :-)


je croyais que which indiquait l'emplacement de tous les logiciels dont
on donne le nom, present dans le PATH

je viens de m'appercevoir que non, il ne donne que celui qui va etre
executé, cad le 1er

y a t il qqch qui puisse repondre à mon besoin ?


j'ai fait un tas de petits logiciels avec des noms tres courts,
et je me suis demandé apres si il n'y avait pas dans le systeme des
logiciels avec les memes noms (auquel cas ca pourrait poser des pbs :-/ )

donc j'ai besoin de ca pour verifier maintenant si il y a chevauchement
ou pas :-)

--
Informations sur Nicolas Sarkozy :
http://www.betapolitique.fr/spip.php?article0602
http://www.betapolitique.fr/spip.php?article0601
http://www.betapolitique.fr/spip.php?article0414
http://www.betapolitique.fr/spip.php?article0606
http://tDeContes.hd.free.fr/divers/Ruptures.pdf

10 réponses

1 2 3
Avatar
Luc.Habert.00__arjf
Thomas :

je croyais que which indiquait l'emplacement de tous les logiciels dont
on donne le nom, present dans le PATH

je viens de m'appercevoir que non, il ne donne que celui qui va etre
executé, cad le 1er

y a t il qqch qui puisse repondre à mon besoin ?


Le which de zsh a une option « -a ».

Avatar
Benoit Izac
Bonjour,

le 02/06/2007 à 15:09, Thomas a écrit dans le message
:

je croyais que which indiquait l'emplacement de tous les logiciels
dont on donne le nom, present dans le PATH

je viens de m'appercevoir que non, il ne donne que celui qui va etre
executé, cad le 1er

y a t il qqch qui puisse repondre à mon besoin ?


% for d in `echo $PATH | tr ':' ' '`; do find $d -name echo; done
/bin/echo
/usr/bin/echo
/usr/X11R6/bin/echo

--
Benoit Izac

Avatar
Luc.Habert.00__arjf
Benoit Izac :

% for d in `echo $PATH | tr ':' ' '`; do find $d -name echo; done


Au secours!

set -f
OLDIFS=$IFS
IFS=:
for d in $PATH; do A=$d/$MACHIN; test -x "$A" && printf '%sn' "$A"; done
IFS=$OLDIFS
set +f

Avatar
Thomas
In article (Dans l'article) <f3rq9j$2hvd$,
(Luc Habert) wrote (écrivait) :

Thomas :

je croyais que which indiquait l'emplacement de tous les logiciels dont
on donne le nom, present dans le PATH

je viens de m'appercevoir que non, il ne donne que celui qui va etre
executé, cad le 1er

y a t il qqch qui puisse repondre à mon besoin ?


Le which de zsh a une option « -a ».


moi c'est tcsh
ca marche pas :-(

--
Informations sur Nicolas Sarkozy :
http://www.betapolitique.fr/spip.php?article0602
http://www.betapolitique.fr/spip.php?article0601
http://www.betapolitique.fr/spip.php?article0414
http://www.betapolitique.fr/spip.php?article0606
http://tDeContes.hd.free.fr/divers/Ruptures.pdf


Avatar
Thomas
In article (Dans l'article) <f3rsas$30bo$,
(Luc Habert) wrote (écrivait) :

Benoit Izac :

% for d in `echo $PATH | tr ':' ' '`; do find $d -name echo; done


Au secours!

set -f
OLDIFS=$IFS
IFS=:
for d in $PATH; do A=$d/$MACHIN; test -x "$A" && printf '%sn' "$A"; done
IFS=$OLDIFS
set +f


merci :-)

si je met ca dans un fichier, avec juste $1 pour $MACHIN, ca suffit ?
faut que je precise le nom d'un shell au debut ?

que fait set -f et set +f ?
et à quoi sert IFS ? puisqu'il n'est pas dans la boucle

--
Informations sur Nicolas Sarkozy :
http://www.betapolitique.fr/spip.php?article0602
http://www.betapolitique.fr/spip.php?article0601
http://www.betapolitique.fr/spip.php?article0414
http://www.betapolitique.fr/spip.php?article0606
http://tDeContes.hd.free.fr/divers/Ruptures.pdf


Avatar
Luc.Habert.00__arjf
Thomas :

moi c'est tcsh


Pitié, oublie cette horreur...

Avatar
Luc.Habert.00__arjf
Thomas :

si je met ca dans un fichier, avec juste $1 pour $MACHIN, ca suffit ?
faut que je precise le nom d'un shell au debut ?


Oui, « #!/bin/sh ». Mon code est du sh, je n'ai aucune idée de si ça marche
avec tcsh.

que fait set -f et set +f ?
et à quoi sert IFS ? puisqu'il n'est pas dans la boucle


Quand tu as un « $PLOUM » non quoté (dans mon code, c'était le « $PATH »),
son contenu subi deux transformations :
- découpage en morceaux séparés par les caractères contenus dans la variable
IFS (qui par défaut contient le whitespace)
- chaque morceau est ensuite examiné pour voir si il contient des « * »,
« ? » et « [] », auquel cas il y a expansion en tous les noms de fichiers
qui matchent (si il n'y en a pas, le morceau est laissé tel quel, oui, c'est
bizarre, mais ça peut être utile).

Donc mon « IFS=: » sert à ce que dans le « for d in $PATH; » le contenu de
la variable « PATH » soit découpé sur les « : ». Mais ensuite, je ne veux
pas que la deuxième étape soit effectuée, donc je la désactive avec le « set
-f ».

À la fin, je restaure la valeur initiale de « IFS », et je réactive le
globbing avec « set +f ».

Avatar
Thierry Boudet
On 2007-06-04, Thomas wrote:

si je met ca dans
faut que je precise
que fait set -f et
et à quoi sert


J'ai trouvé récemment un O'Reilly "Introduction aux scripts shells"
qui répond à toute cette gamme de questions.


--
{ SIGWHAT?!!, "BACKSIGNAL" },
/* the processus signal the kill program it disagree
with the previous signal given. See anarchy(3) */

Avatar
Stephane Dupille
bonjour :-)


Hello,

je croyais que which indiquait l'emplacement de tous les logiciels dont
on donne le nom, present dans le PATH
y a t il qqch qui puisse repondre à mon besoin ?


Sur les BSD, il y a whereis qui permet de rechercher ça, et bien
plus. On doit le trouver sur les Linux aussi, normalement.

Avatar
Thomas
In article (Dans l'article) ,
Stephane Dupille wrote (écrivait) :


je croyais que which indiquait l'emplacement de tous les logiciels dont
on donne le nom, present dans le PATH
y a t il qqch qui puisse repondre à mon besoin ?


Sur les BSD, il y a whereis qui permet de rechercher ça, et bien
plus. On doit le trouver sur les Linux aussi, normalement.


thomas% which at
/Users/thomas/bin/compil/at
thomas% whereis at
/usr/bin/at

thomas% which gcc
/Users/thomas/bin/autoinstall/ada/4.2/bin/gcc
thomas% whereis gcc
/usr/bin/gcc


c'est bizarre !
on dirait que ca ne donne que ce qui a été installé par le systeme

ca se base sur quoi ?

--
Informations sur Nicolas Sarkozy :
http://www.betapolitique.fr/spip.php?article0602
http://www.betapolitique.fr/spip.php?article0601
http://www.betapolitique.fr/spip.php?article0414
http://www.betapolitique.fr/spip.php?article0606
http://tDeContes.hd.free.fr/divers/Ruptures.pdf


1 2 3