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
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 ».
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 ».
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 ».
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) */
On 2007-06-04, Thomas <fantome.forums.tDeContes@free.fr.invalid> 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) */
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) */
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.
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.
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
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
In article (Dans l'article) <ygeejksqblm.fsf@nospam.fr.eu.org>,
Stephane Dupille <sdupille@NOSPAM.fr.eu.org> 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
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