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

which dans script udev

20 réponses
Avatar
Christophe PEREZ
Bonjour,

Quelqu'un aurait-il une idée de pourquoi la commande which ne me renvoie
rien lorsqu'elle se trouve dans un script lancé par une règle udev ?

J'ai tout de suite pensé à l'environnement différent, mais le $PATH étant
correct (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin),
je ne vois pas ce qui peut influer d'autre.

Le script lancé hors udev, contenant :
which scanimage
me renvoie bien
/usr/bin/scanimage
Lancé par udev, aucune sortie (testé en écrivant dans un fichier, et oui,
l'écriture dans le fichier se fait bien, testé avec des echos en tous
genres).

Ce n'est pas dramatique, je peux mettre les chemins en dur dans le
script, mais j'aime bien les "faire trouver" à mes scripts pour être sûr
que même si les binaires sont déplacés par ma distrib, ils seront
toujours exécutés normalement.

J'ai fait un truc (que je trouve) moche du genre :
SCANIMAGE=$(which scanimage 2> /dev/null) || [ -f /usr/bin/scanimage ] &&
SCANIMAGE=/usr/bin/scanimage || exit
pour combiner les deux.

Mais au moins par curiosité, j'aurais aimé savoir pourquoi which est
inopérant dans ce contexte.

Merci.

10 réponses

1 2
Avatar
Christophe PEREZ
Le Wed, 18 Apr 2018 21:31:19 +0200, Francois Lafont a écrit :
Bonsoir,
Comme a priori which se base sur le PATH et que tu indiques que le PATH
est OK, il n'y a plus d'autres alternatives, il faut que tu décrives
verbatim ton problème avec le code et la conf (et la version de l'OS
aussi). C'est le seul moyen àmha.

A part que je l'ai déjà décrit, mais allez, je recommence si ça te fait
plaisir :
#!/bin/bash
which scanimage
Bref, show us the code (and the conf). ;)

And the conf de what ?
Perso, si je vois un script avec un PATH OK et un which qui déconne, ça
m'intéresserait beaucoup de tester de mon côté.

Note bien que je n'ai pas tant de problème. Comme je l'ai écrit, j'ai
résolu mon problème. Ce qui subsiste(ait), c'est ma curiosité, mais elle
ne franchit pas la barrière des moqueries.
Donc les réponses sur mon besoin de which n'ont pas leur place. Peu
importe pourquoi je l'utilise, ni même si je l'utilise à bon escient. La
seule question valable c'était pourquoi il ne renvoie rien, c'est à dire
ni le binaire avec son chemin dans le path, ni l'erreur classique "no xxxx
in (...le_path...)".
Mais bon, j'avoue, ce n'est pas très important, ni à la hauteur des
questions qui sont acceptables sur ce groupe. Je me demande encore
pourquoi je l'ai posée. Un égarement passager sans doute. Mais je me suis
repris :)
NB : Tes lignes sont trop longues.
Avatar
Marc SCHAEFER
Christophe PEREZ wrote:
A part que je l'ai déjà décrit, mais allez, je recommence si ça te fait
plaisir :
#!/bin/bash
which scanimage

L'entrée udev, peut-être, complète?
Ne partez pas du principe que l'on veut simplement vous rabaisser
ou je ne sais quoi. En ce qui me concerne ça partait d'un bon
sentiment et il reste même, encore, une partie de celui-ci.
Avatar
Francois Lafont
On 04/19/2018 03:37 PM, Christophe PEREZ wrote:
A part que je l'ai déjà décrit, mais allez, je recommence si ça te fait
plaisir :

C'est pour tenter de comprendre et d'aller au bout de ton problème
(qui personnellement m'intrigue).
#!/bin/bash
which scanimage

Tu conviendras avec moi qu'il est à peu près certain que dans un
contexte « classique », l'exécution de ce script fonctionnera.
Donc tout l'intérêt réside dans la description précise du contexte
afin, tout simplement, que moi ou un lecteur puissions tenter de
reproduire le problème exactement dans le même environnement, puis
tenter ensuite de le résoudre (et de le comprendre).
Bref, show us the code (and the conf). ;)

And the conf de what ?

Dans quel contexte exactement le script ci-dessus a été exécuté.
Bref, en clair toutes les informations nécessaires qui permettent
de reproduire ton problème dans le même environnement.
Perso, si je vois un script avec un PATH OK et un which qui déconne, ça
m'intéresserait beaucoup de tester de mon côté.

Note bien que je n'ai pas tant de problème. Comme je l'ai écrit, j'ai
résolu mon problème. Ce qui subsiste(ait), c'est ma curiosité, mais elle
ne franchit pas la barrière des moqueries.

Je ne sais pas si cette remarque s'applique pour moi, mais en aucun
cas mon but est de se moquer. J'aime bien comprendre. Si tu nous expliques
comment reproduire le problème, c'est avec plaisir que je tenterai
l'expérience sur une VM. Mais si tu n'es pas motivé pour cela, tant pis.
NB : Tes lignes sont trop longues.

Désolé, c'est rectifié.
À+
--
François Lafont
Avatar
Hugolino
Le 17-04-2018, Nicolas George <nicolas$ a écrit :
Hugolino , dans le message
Nicolas George qui parle de « prendre les gens de haut » : j'aurais tout
vu sur usenet ;-))

La différence, c'est que je n'ai pas de problèmes pour lesquels je
demande de l'aide.

Et donc ?
En quoi le fait de n'avoir « pas de problèmes pour lesquels je
demande de l'aide » induit de « prendre les gens de haut » ?
C'est une question rhétorique, hein... Je me contrefous de la réponse;-)
--
Procédons par étapes.

Allons bon. Je sens encore venir une belle explication à destination des
pauvres ploucs qui n'entravent rien à la logique totogonale.
Hugo (né il y a 1 703 444 154 secondes)
Avatar
Doug713705
Le 18-04-2018, Christophe PEREZ nous expliquait dans
fr.comp.os.linux.configuration (<pb7i6s$87p$) :
Le Wed, 18 Apr 2018 08:58:39 +0000, Doug713705 a écrit :
Peut-être mais il a néanmoins raison.

Je ne sais pas, je ne le lis pas :)
Et comme tout ce que j'ai vu de lui c'est ce qu'a repris
Le Tue, 17 Apr 2018 19:54:04 +0200, Hugolino a écrit :
Le 17-04-2018, Nicolas George <nicolas$ a écrit :
Et si tu précisais le problème que tu cherches à résoudre avec ce
which baroque plutôt que de prendre les gens de haut ?


Je ne le vois pas du tout y donner quelque information que ce soit.

Il ne donne pas d'information car comme les autres intervenant il a
d'abord besoin de comprendre le contexte afin d'éviter de répondre à
coté de la plaque.
Juste pour essayer de comprendre, est-ce que tu peux indiquer ce que renvoie
# ls -l $(which which)
Merci.
--
Tu sais comment comment ça jouit, Les mecs complètements stress
Qui t'réclament aux toilettes une p'tite canette, une p'tite fumette,
Une reniflette, une seringuette, Une bonne branlette... Et puis : ciao... dodo.
-- H.F. Thiéfaine, Cabaret Sainte-Lilith
Avatar
Jo Engo
Le Fri, 20 Apr 2018 14:01:33 +0000, Doug713705 a écrit :
# ls -l $(which which)

Je répond à sa place parce que c'est peut-être là la source de son souci
sous blblblubuntu j'ai :
lrwxrwxrwx 1 root root 10 nov. 12 2015 /usr/bin/which -> /bin/which
Avatar
Christophe PEREZ
Le Fri, 20 Apr 2018 14:01:33 +0000, Doug713705 a écrit :
Il ne donne pas d'information car comme les autres intervenant il a
d'abord besoin de comprendre le contexte afin d'éviter de répondre à
coté de la plaque.

Il a besoin de savoir pourquoi je veux utiliser which pour trouver
pourquoi which ne renvoie rien ?
Tu es un plaisantin, ou alors, tu aimes te faire l'avocat du diable.
Non, mes motivations ne peuvent nullement influer sur le résultat d'une
commande.
Son seul but est systématiquement de pouvoir dénigrer le demandeur en le
ridiculisant sur le bien-fondé de sa demande. Et ça, ce n'est pas nouveau.
Mais bref, si j'ai choisi de ne pas le lire, ce n'est pas pour que ses
sbires viennent me faire sa propagande.
Juste pour essayer de comprendre, est-ce que tu peux indiquer ce que
renvoie # ls -l $(which which)

j'ai du mal à voir à quoi ça va t'avancer, mais pour ne pas te contrarier
comme **** :
$ ls -l $(which which)
-rwxr-xr-x 1 root root 23408 Dec 4 08:07 /usr/bin/which
Avatar
Olivier Miakinen
Le 17/04/2018 19:23, Christophe PEREZ répondait à Marc SCHAEFER :
Christophe PEREZ wrote:
SCANIMAGE=$(which scanimage 2> /dev/null) || [ -f /usr/bin/scanimage ]
&&
SCANIMAGE=/usr/bin/scanimage || exit

ce qui semble équivalent à SCANIMAGE=scanimage

ça "semble" seulement alors.

Tu veux dire que si tu mets « SCANIMAGE=scanimage » à la place de
ce code ça ne fonctionne plus ? Si oui, c'est une information très
intéressante parce que ça voudrait dire que ton problème n'est pas
un problème de which (contrairement à ce que tu sembles supposer).
vu que de toute façon, which ne trouve que ce qu'il y a sur le PATH.

Oui, c'est bien pour ça que je précise que le PATH est le bon.

... et c'est parce que tu précises que le PATH est le bon que tu n'as
pas besoin de tout ça.
Le plus simple n'est-il pas de garantir un PATH adéquat ?

Ce qui est déjà le cas.
Tu as lu mon post ou juste le titre ?

Sans vouloir t'offenser, je crois que tu n'as pas compris ce que disait
Marc, et qu'il a bien lu ton article et pas seulement le titre.
En effet, le problème n'est pas de « garantir un PATH adéquat pour le
which » mais de « garantir un PATH adéquat pour le scanimage » !
Et encore une fois, si scanimage n'est pas trouvé alors qu'il est
dans /usr/bin, c'est probablement pour la même raison qu'il ne peut
pas trouver which qui est également dans /usr/bin !
Jdçjdr...
--
Olivier Miakinen
Avatar
Marc SCHAEFER
Olivier Miakinen <om+ wrote:
En effet, le problème n'est pas de « garantir un PATH adéquat pour le
which » mais de « garantir un PATH adéquat pour le scanimage » !

C'est ce que je voulais dire: merci de l'explicitation, et de contribuer
à faire des forums un lieu de compréhension et de non agression :)
Avatar
Doug713705
Le 21-04-2018, Christophe PEREZ nous expliquait dans
fr.comp.os.linux.configuration (<pbgaki$jfi$) :
Il ne donne pas d'information car comme les autres intervenant il a
d'abord besoin de comprendre le contexte afin d'éviter de répondre à
coté de la plaque.

Il a besoin de savoir pourquoi je veux utiliser which pour trouver
pourquoi which ne renvoie rien ?
Tu es un plaisantin, ou alors, tu aimes te faire l'avocat du diable.
Non, mes motivations ne peuvent nullement influer sur le résultat d'une
commande.
Son seul but est systématiquement de pouvoir dénigrer le demandeur en le
ridiculisant sur le bien-fondé de sa demande. Et ça, ce n'est pas nouveau.
Mais bref, si j'ai choisi de ne pas le lire, ce n'est pas pour que ses
sbires viennent me faire sa propagande.
Juste pour essayer de comprendre, est-ce que tu peux indiquer ce que
renvoie # ls -l $(which which)

j'ai du mal à voir à quoi ça va t'avancer, mais pour ne pas te contrarier
comme **** :
$ ls -l $(which which)
-rwxr-xr-x 1 root root 23408 Dec 4 08:07 /usr/bin/which

Ça va me permettre de vérifier en partie que which est bien accessible en
toutes circontstances car il arrive fréquemment que /usr/bin/which soit un
symlink vers un executable installé sur autre partition. Cette partition
pourrait ne pas être disponible au moment de l'appel du script.
Il n'est pas impossible que ton problème ne soit pas lié à which en lui
même mais à un problème plus bas niveau (genre indisponibilité de
l'executable au moment où il est appelé, problème d'entrée/sortie, etc).
Si tu butes bêtement sur un problème c'est peut-être que tu as mal définis
ce problème et un même symptôme peut avoir plusieurs origines
différentes.
Si tu ne comprends pas en quoi le contexte et la démarche d'un OP sont
des données importantes pour esssayer comprendre un problème (mais
surtout pour réduire le champs des possibles, voire apporter une
alternative plus adaptée) alors je ne vois pas comment ni pourquoi je
pourrais avoir envie de te donner un coup de main.
Pour le reste je pense que tu as un comportement tout aussi aussi destestable
que celui que tu reproches à NG et je ne suis ni "un plaisantin" ni "l'avocat
du diable".
Et si je peux me permettre de te donner un conseil, tu devrais
redescendre un peu car tu sembles visiblement hyper-stressé. Toutes les
intéractions entre êtres humains ne sont pas une lutte entre egos.
Inutile donc d'être sur une telle défensive qu'elle en devient
agressivité.
--
Je ne connaîtrai rien de tes habitudes
Il se peut même que tu sois décédée
Mais j'demanderai ta main pour la couper
-- H.F. Thiéfaine, L'ascenceur de 22H43
1 2