Le script suivant
http://www.thinkwiki.org/index.php?title=Code/tp-fancontrol.init.debian&action=edit
provoque chez moi l'erreur "Exec format error"
Le problème semble venir de do_start() mais je ne sais pas le corriger.
Le programme "tp-fancontrol" fonctionne bien depuis une console.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Ph. Ivaldi
Le 25 juillet 2008, Ph. Ivaldi écrivit :
Le script suivant http://www.thinkwiki.org/index.php?title=Code/tp-fancontrol.init.debian&actioníit provoque chez moi l'erreur "Exec format error" Le problème semble venir de do_start() mais je ne sais pas le corriger. Le programme "tp-fancontrol" fonctionne bien depuis une console.
tp-fancontrol fonctionne depuis une console mais pas s'il est lancé en tant que service; dans ce cas j'obtiens l'erreur: 8<------8<------8<------8<------8<------8<------8<------8<------8<------ /usr/bin/tp-fancontrol line 202: Syntax error near unexpected token '<' /usr/bin/tp-fancontrol line 202: `read X Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 Z1 Z2 Z3 JNK < <(echo "$THERMAL")' 8<------8<------8<------8<------8<------8<------8<------8<------8<------
J'en profite pour demander pourquoi, à la ligne 201, il n'y a qu'un '<': read THERMAL < $IBM_ACPI/thermal alors qu'à la ligne 202 il en faut 2.
Merci de votre aide, -- Philippe Ivaldi. http://piprim.tuxfamily.org/
Le 25 juillet 2008, Ph. Ivaldi écrivit :
Le script suivant
http://www.thinkwiki.org/index.php?title=Code/tp-fancontrol.init.debian&actioníit
provoque chez moi l'erreur "Exec format error"
Le problème semble venir de do_start() mais je ne sais pas le corriger.
Le programme "tp-fancontrol" fonctionne bien depuis une console.
tp-fancontrol fonctionne depuis une console mais pas s'il est lancé
en tant que service; dans ce cas j'obtiens l'erreur:
8<------8<------8<------8<------8<------8<------8<------8<------8<------
/usr/bin/tp-fancontrol line 202: Syntax error near unexpected token '<'
/usr/bin/tp-fancontrol line 202: `read X Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 Z1 Z2 Z3 JNK < <(echo "$THERMAL")'
8<------8<------8<------8<------8<------8<------8<------8<------8<------
J'en profite pour demander pourquoi, à la ligne 201, il n'y a qu'un '<':
read THERMAL < $IBM_ACPI/thermal
alors qu'à la ligne 202 il en faut 2.
Merci de votre aide,
--
Philippe Ivaldi.
http://piprim.tuxfamily.org/
Le script suivant http://www.thinkwiki.org/index.php?title=Code/tp-fancontrol.init.debian&actioníit provoque chez moi l'erreur "Exec format error" Le problème semble venir de do_start() mais je ne sais pas le corriger. Le programme "tp-fancontrol" fonctionne bien depuis une console.
tp-fancontrol fonctionne depuis une console mais pas s'il est lancé en tant que service; dans ce cas j'obtiens l'erreur: 8<------8<------8<------8<------8<------8<------8<------8<------8<------ /usr/bin/tp-fancontrol line 202: Syntax error near unexpected token '<' /usr/bin/tp-fancontrol line 202: `read X Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 Z1 Z2 Z3 JNK < <(echo "$THERMAL")' 8<------8<------8<------8<------8<------8<------8<------8<------8<------
J'en profite pour demander pourquoi, à la ligne 201, il n'y a qu'un '<': read THERMAL < $IBM_ACPI/thermal alors qu'à la ligne 202 il en faut 2.
Merci de votre aide, -- Philippe Ivaldi. http://piprim.tuxfamily.org/
Alain Ketterlin
Ph. Ivaldi writes:
8<------8<------8<------8<------8<------8<------8<------8<------8<------ /usr/bin/tp-fancontrol line 202: Syntax error near unexpected token '<' /usr/bin/tp-fancontrol line 202: `read X Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 Z1 Z2 Z3 JNK < <(echo "$THERMAL")' 8<------8<------8<------8<------8<------8<------8<------8<------8<------
J'en profite pour demander pourquoi, à la ligne 201, il n'y a qu'un '<': read THERMAL < $IBM_ACPI/thermal alors qu'à la ligne 202 il en faut 2.
C'est un bash-ism : <(commande) est remplacé par le nom d'une fifo, et "commande" est exécutée avec une sortie standard reliée à l'autre bout de la fifo (peut-être que d'autres shells font pareil, je l'ignore). L'autre < redirige simplement l'entrée standard de read sur la fifo.
Ca m'étonnerait que ça fonctionne dans un script init, qui utilise en général /bin/sh, lequel ne connaît pas je pense <(...). J'ai l'impression que
echo "$THERMAL" | read X Y1 ...
ferait exactement la même chose sans utiliser de fifo.
Un expert peut-il confirmer/infirmer ?
-- Alain.
Ph. Ivaldi <piv_pasde@pub_tele2.fr> writes:
8<------8<------8<------8<------8<------8<------8<------8<------8<------
/usr/bin/tp-fancontrol line 202: Syntax error near unexpected token '<'
/usr/bin/tp-fancontrol line 202: `read X Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 Z1 Z2 Z3 JNK < <(echo "$THERMAL")'
8<------8<------8<------8<------8<------8<------8<------8<------8<------
J'en profite pour demander pourquoi, à la ligne 201, il n'y a qu'un '<':
read THERMAL < $IBM_ACPI/thermal
alors qu'à la ligne 202 il en faut 2.
C'est un bash-ism : <(commande) est remplacé par le nom d'une fifo, et
"commande" est exécutée avec une sortie standard reliée à l'autre bout
de la fifo (peut-être que d'autres shells font pareil, je l'ignore).
L'autre < redirige simplement l'entrée standard de read sur la fifo.
Ca m'étonnerait que ça fonctionne dans un script init, qui utilise en
général /bin/sh, lequel ne connaît pas je pense <(...). J'ai
l'impression que
echo "$THERMAL" | read X Y1 ...
ferait exactement la même chose sans utiliser de fifo.
8<------8<------8<------8<------8<------8<------8<------8<------8<------ /usr/bin/tp-fancontrol line 202: Syntax error near unexpected token '<' /usr/bin/tp-fancontrol line 202: `read X Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 Z1 Z2 Z3 JNK < <(echo "$THERMAL")' 8<------8<------8<------8<------8<------8<------8<------8<------8<------
J'en profite pour demander pourquoi, à la ligne 201, il n'y a qu'un '<': read THERMAL < $IBM_ACPI/thermal alors qu'à la ligne 202 il en faut 2.
C'est un bash-ism : <(commande) est remplacé par le nom d'une fifo, et "commande" est exécutée avec une sortie standard reliée à l'autre bout de la fifo (peut-être que d'autres shells font pareil, je l'ignore). L'autre < redirige simplement l'entrée standard de read sur la fifo.
Ca m'étonnerait que ça fonctionne dans un script init, qui utilise en général /bin/sh, lequel ne connaît pas je pense <(...). J'ai l'impression que
echo "$THERMAL" | read X Y1 ...
ferait exactement la même chose sans utiliser de fifo.
Un expert peut-il confirmer/infirmer ?
-- Alain.
Stephane CHAZELAS
2008-07-29, 16:21(+02), Alain Ketterlin:
Ph. Ivaldi writes:
8<------8<------8<------8<------8<------8<------8<------8<------8<------ /usr/bin/tp-fancontrol line 202: Syntax error near unexpected token '<' /usr/bin/tp-fancontrol line 202: `read X Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 Z1 Z2 Z3 JNK < <(echo "$THERMAL")' 8<------8<------8<------8<------8<------8<------8<------8<------8<------
J'en profite pour demander pourquoi, à la ligne 201, il n'y a qu'un '<': read THERMAL < $IBM_ACPI/thermal alors qu'à la ligne 202 il en faut 2.
C'est un bash-ism : <(commande) est remplacé par le nom d'une fifo, et "commande" est exécutée avec une sortie standard reliée à l'autre bout de la fifo (peut-être que d'autres shells font pareil, je l'ignore). L'autre < redirige simplement l'entrée standard de read sur la fifo.
[...]
C'est un kshism que bash et zsh ont copié.
A la place, on peut faire:
set -f set -- $THERMAL
X=$1 Y1=$2...
Ou
printf '%sn' "$THERMAL" | { read X Y1... do-something with "$X", "$Y1"... }
ou utiliser awk.
-- Stéphane
2008-07-29, 16:21(+02), Alain Ketterlin:
Ph. Ivaldi <piv_pasde@pub_tele2.fr> writes:
8<------8<------8<------8<------8<------8<------8<------8<------8<------
/usr/bin/tp-fancontrol line 202: Syntax error near unexpected token '<'
/usr/bin/tp-fancontrol line 202: `read X Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 Z1 Z2 Z3 JNK < <(echo "$THERMAL")'
8<------8<------8<------8<------8<------8<------8<------8<------8<------
J'en profite pour demander pourquoi, à la ligne 201, il n'y a qu'un '<':
read THERMAL < $IBM_ACPI/thermal
alors qu'à la ligne 202 il en faut 2.
C'est un bash-ism : <(commande) est remplacé par le nom d'une fifo, et
"commande" est exécutée avec une sortie standard reliée à l'autre bout
de la fifo (peut-être que d'autres shells font pareil, je l'ignore).
L'autre < redirige simplement l'entrée standard de read sur la fifo.
[...]
C'est un kshism que bash et zsh ont copié.
A la place, on peut faire:
set -f
set -- $THERMAL
X=$1 Y1=$2...
Ou
printf '%sn' "$THERMAL" | {
read X Y1...
do-something with "$X", "$Y1"...
}
8<------8<------8<------8<------8<------8<------8<------8<------8<------ /usr/bin/tp-fancontrol line 202: Syntax error near unexpected token '<' /usr/bin/tp-fancontrol line 202: `read X Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 Z1 Z2 Z3 JNK < <(echo "$THERMAL")' 8<------8<------8<------8<------8<------8<------8<------8<------8<------
J'en profite pour demander pourquoi, à la ligne 201, il n'y a qu'un '<': read THERMAL < $IBM_ACPI/thermal alors qu'à la ligne 202 il en faut 2.
C'est un bash-ism : <(commande) est remplacé par le nom d'une fifo, et "commande" est exécutée avec une sortie standard reliée à l'autre bout de la fifo (peut-être que d'autres shells font pareil, je l'ignore). L'autre < redirige simplement l'entrée standard de read sur la fifo.
[...]
C'est un kshism que bash et zsh ont copié.
A la place, on peut faire:
set -f set -- $THERMAL
X=$1 Y1=$2...
Ou
printf '%sn' "$THERMAL" | { read X Y1... do-something with "$X", "$Y1"... }
ou utiliser awk.
-- Stéphane
Ph. Ivaldi
Le 29 juillet 2008, Stephane CHAZELAS écrivit :
set -f
on peut lire ici http://www.ss64.com/bash/set.html
8<------8<------8<------8<------8<------8<------8<------8<------8<------ -f noglob Disable file name generation (globbing). 8<------8<------8<------8<------8<------8<------8<------8<------8<------
Je vais là http://www.linux-france.org/prj/jargonf/G/globalisation.html et je ne comprends toujours pas ce que fait set -f. Pouvez vous m'expliquer svp ?
printf '%sn' "$THERMAL" | { read X Y1... do-something with "$X", "$Y1"... }
Parfait. Merci à tous les deux.
Le 29 juillet 2008, Stephane CHAZELAS écrivit :
set -f
on peut lire ici http://www.ss64.com/bash/set.html
8<------8<------8<------8<------8<------8<------8<------8<------8<------
-f noglob
Disable file name generation (globbing).
8<------8<------8<------8<------8<------8<------8<------8<------8<------
Je vais là http://www.linux-france.org/prj/jargonf/G/globalisation.html
et je ne comprends toujours pas ce que fait set -f.
Pouvez vous m'expliquer svp ?
on peut lire ici http://www.ss64.com/bash/set.html
8<------8<------8<------8<------8<------8<------8<------8<------8<------ -f noglob Disable file name generation (globbing). 8<------8<------8<------8<------8<------8<------8<------8<------8<------
Je vais là http://www.linux-france.org/prj/jargonf/G/globalisation.html et je ne comprends toujours pas ce que fait set -f. Pouvez vous m'expliquer svp ?
printf '%sn' "$THERMAL" | { read X Y1... do-something with "$X", "$Y1"... }
Parfait. Merci à tous les deux.
Stephane CHAZELAS
2008-07-29, 21:13(+02), Ph Ivaldi:
Le 29 juillet 2008, Stephane CHAZELAS écrivit :
set -f
on peut lire ici http://www.ss64.com/bash/set.html
8<------8<------8<------8<------8<------8<------8<------8<------8<------ -f noglob Disable file name generation (globbing). 8<------8<------8<------8<------8<------8<------8<------8<------8<------
[...]
set -- $THERMAL
X=$1 Y1=$2...
[...]
Quand on laisse une variable sans ses quotes (dans des contexte de /liste/), deux choses se passent: 1- word splitting 2- filename generation
1 est ce que tu veux: que le contenu de $THERMAL soit splitté en en une liste d'arguments passée a "set".
Le 2 est ce que tu ne veux pas, c'est a dire que les "mots" resultant du splitting soit l'objet de filename generation.
Par example si THERMAL='a * b' set -- $THERMAL
tu veux $1==a, $2==*, $3==b. Sans set -f, le * est transformé en la liste des fichiers du repertoire courant qui matchent * (c'est a dire tous les fichiers sauf ceux qui commencent par ".").
-- Stéphane
2008-07-29, 21:13(+02), Ph Ivaldi:
Le 29 juillet 2008, Stephane CHAZELAS écrivit :
set -f
on peut lire ici http://www.ss64.com/bash/set.html
8<------8<------8<------8<------8<------8<------8<------8<------8<------
-f noglob
Disable file name generation (globbing).
8<------8<------8<------8<------8<------8<------8<------8<------8<------
[...]
set -- $THERMAL
X=$1 Y1=$2...
[...]
Quand on laisse une variable sans ses quotes (dans des contexte
de /liste/), deux choses se passent:
1- word splitting
2- filename generation
1 est ce que tu veux: que le contenu de $THERMAL soit splitté en
en une liste d'arguments passée a "set".
Le 2 est ce que tu ne veux pas, c'est a dire que les "mots"
resultant du splitting soit l'objet de filename generation.
Par example si
THERMAL='a * b'
set -- $THERMAL
tu veux $1==a, $2==*, $3==b. Sans set -f, le * est transformé en
la liste des fichiers du repertoire courant qui matchent *
(c'est a dire tous les fichiers sauf ceux qui commencent par
".").
on peut lire ici http://www.ss64.com/bash/set.html
8<------8<------8<------8<------8<------8<------8<------8<------8<------ -f noglob Disable file name generation (globbing). 8<------8<------8<------8<------8<------8<------8<------8<------8<------
[...]
set -- $THERMAL
X=$1 Y1=$2...
[...]
Quand on laisse une variable sans ses quotes (dans des contexte de /liste/), deux choses se passent: 1- word splitting 2- filename generation
1 est ce que tu veux: que le contenu de $THERMAL soit splitté en en une liste d'arguments passée a "set".
Le 2 est ce que tu ne veux pas, c'est a dire que les "mots" resultant du splitting soit l'objet de filename generation.
Par example si THERMAL='a * b' set -- $THERMAL
tu veux $1==a, $2==*, $3==b. Sans set -f, le * est transformé en la liste des fichiers du repertoire courant qui matchent * (c'est a dire tous les fichiers sauf ceux qui commencent par ".").
-- Stéphane
Ph. Ivaldi
$ ( set -f; ls *.*) ls: cannot access *.*: No such file or directory
Merci !
$ ( set -f; ls *.*)
ls: cannot access *.*: No such file or directory
$ ( set -f; ls *.*) ls: cannot access *.*: No such file or directory
Merci !
Xavier Gachon
Le 29-07-2008, Ph Ivaldi a écrit :
J'ai appris un truc génial !
Ou
printf '%sn' "$THERMAL" | { read X Y1... do-something with "$X", "$Y1"... }
Parfait.
une alternative posix equivalente qui offre de positionner les variables dans l'environnement courant et de ne pas avoir a sauver d'eventuel positionnal parameters (bien pratique lorsqu'ils sont deja utilisés pour une raison quelconque), un here doc:
read X Y1 ... << end $THERMAL end
ou le contenu ($THERMAL ici) est sujet aux command substitution, parameters et arithmetic mais pas pathname expansions.
hope this help.
Le 29-07-2008, Ph Ivaldi <piv_pasde@pub_tele2.fr> a écrit :
J'ai appris un truc génial !
Ou
printf '%sn' "$THERMAL" | {
read X Y1...
do-something with "$X", "$Y1"...
}
Parfait.
une alternative posix equivalente qui offre de positionner
les variables dans l'environnement courant et de ne pas avoir a
sauver d'eventuel positionnal parameters (bien pratique lorsqu'ils
sont deja utilisés pour une raison quelconque), un here doc:
read X Y1 ... << end
$THERMAL
end
ou le contenu ($THERMAL ici) est sujet aux command substitution,
parameters et arithmetic mais pas pathname expansions.
printf '%sn' "$THERMAL" | { read X Y1... do-something with "$X", "$Y1"... }
Parfait.
une alternative posix equivalente qui offre de positionner les variables dans l'environnement courant et de ne pas avoir a sauver d'eventuel positionnal parameters (bien pratique lorsqu'ils sont deja utilisés pour une raison quelconque), un here doc:
read X Y1 ... << end $THERMAL end
ou le contenu ($THERMAL ici) est sujet aux command substitution, parameters et arithmetic mais pas pathname expansions.
hope this help.
Ph. Ivaldi
Le 30 juillet 2008, Xavier Gachon écrivit :
read X Y1 ... << end $THERMAL end
Effectivement, c'est simple et efficace. Merci, -- Philippe
Le 30 juillet 2008, Xavier Gachon écrivit :
read X Y1 ... << end
$THERMAL
end
Effectivement, c'est simple et efficace.
Merci,
--
Philippe