Probleme de shell suite migration sur squeeze

salut a tous,
j’ai 1 soucis avec le script suivant :

[code]#!/bin/sh
param=$1
grp=$2
var=/usr/local/bin/owread -s localhost:4304 $param/temperature | tr -d " "
nb=0
#/1 pour suppression de la virgule
echo $var
var=$(echo “$var100/1" |bc)
echo $var
if [ $var > 0 ]
then
while [ $var -gt 2047 ]
do
nb=$nb+1
var=$(echo “$var/2” |bc)
done
nb=$(echo "$nb
2048” |bc)
var=$(echo “ibase=10;obase=16;$var+$nb”|bc)
elif [ $var < 0 ]
then
var=$(echo “$var*-1” |bc) #1 pour revenir en positif
while [ $var -gt 2047 ]
do
nb=$nb+1
var=$(echo “$var/2” |bc)
done
nb=$(echo "$nb
2048" |bc)
var=$(echo “ibase=10;obase=16;4096-$var+$nb+32768-2048”|bc)
fi

#verification si 4 caract
if [ ${#var} = 1 ]
then
var="00 0${var}"
elif [ ${#var} = 2 ]
then
var="00 ${var}"
elif [ ${#var} = 3 ]
then
var="0${var}“
var1=expr substr $var 1 2
var2=expr substr $var 3 2
var=”${var1} ${var2}“
elif [ ${#var} = 4 ]
then
var1=expr substr $var 1 2
var2=expr substr $var 3 2
var=”${var1} ${var2}"
fi
#echo "/usr/local/bin/groupwrite ip:localhost " $grp $var >> trace1w.txt
exec /usr/local/bin/groupwrite ip:localhost $grp $var
[/code]

Voici ce que ca donne a l’exe :

[code]# ./I_O_1wire.sh 28.BE78E1020000 4/6/51
24.25
./I_O_1wire.sh: 8: bc: not found

usage: /usr/local/bin/groupwrite url eibaddr val val …: Success
[/code]

j’imagine que bc ne doit plus etre utilisé, mais quoi a la place ?

j’espère que vous pourrez m’éclairer.
Arnaud

Tu parles de bc, la calculatrice en ligne de commande ?
Regarde tout simplement si le paquet est installé!

apt-get install wcalc

et remplacer |bc par |wcalc.

:wink:
tks a lot
Arnaud

Salut,
finalement, ce n’est pas ca la solution.
wcalc me fournit 1 résultat completement érronée de mes sondes de temparature.
je done le code pour que vous aillez 1 idée :

[code]#!/bin/sh
param=$1
grp=$2
var=/usr/local/bin/owread -s localhost:4304 $param/temperature | tr -d " "
nb=0
#/1 pour suppression de la virgule
var=$(echo “$var100/1" |wcalc)
if [ $var -gt 0 ]
then
while [ $var -gt 2047 ]
do
nb=$nb+1
var=$(echo “$var/2” |wcalc)
done
nb=$(echo "$nb
2048” |wcalc)
var=$(echo “ibase=10;obase=16;$var+$nb”|wcalc)
elif [ $var -lt 0 ]
then
var=$(echo “$var*-1” |wcalc) #1 pour revenir en positif
while [ $var -gt 2047 ]
do
nb=$nb+1
var=$(echo “$var/2” |wcalc)
done
nb=$(echo "$nb
2048" |wcalc)
var=$(echo “ibase=10;obase=16;4096-$var+$nb+32768-2048”|wcalc)
fi

#verification si 4 caract
if [ ${#var} = 1 ]
then
var="00 0${var}"
elif [ ${#var} = 2 ]
then
var="00 ${var}"
elif [ ${#var} = 3 ]
then
var="0${var}“
var1=expr substr $var 1 2
var2=expr substr $var 3 2
var=”${var1} ${var2}“
elif [ ${#var} = 4 ]
then
var1=expr substr $var 1 2
var2=expr substr $var 3 2
var=”${var1} ${var2}"
fi
echo "/usr/local/bin/groupwrite ip:localhost " $grp $var >> trace1w.txt
exec /usr/local/bin/groupwrite ip:localhost $grp $var
[/code]

j’ai donc installé wcalc et remplace bc par wcalc. Mais les valeurs mesurées sont du style 6.88°C au lieu de +20°C environ.
Des idées ?
Merci d’avance.
Arnaud

[quote=“piratebab”]Tu parles de bc, la calculatrice en ligne de commande ?
Regarde tout simplement si le paquet est installé![/quote]

pirate bab a raison

# apt-get install bc apparemment a l"exe" tu as bc en “not found”(not found=pas trouver)

EDIT:bc est deja installé ,j’ai dit n’importe quoi!!!j’ai tester le script et il ne trouve pas “owread”,j’ai chercher “owread” grace apt-cache mais nada rien trouvé

moi j’essaie deja le script ,mais,en faite il fait partie d’un programme en particulier?

j’ai ajouter le depot pour “squeeze” de cette page —http://owfs.davromaniak.eu/— pour avoir ce qu’il faut pour tester mais dans /usr/local/bin/ je n’ai ni “owread”,qui lui se trouve dans /usr/bin , ni “groupwrite” ,j’ai donc creer un lien symbolique dans /usr/local/bin pour “owread” le probleme c’est que je n’ai nulle part le fichier “groupwrite”

voila ce que j’obtiens:

[code]root@debian:/home/nawak# /home/nawak/Bureau/nouv

(standard_in) 1: syntax error

exec: 51: /usr/local/bin/groupwrite: not found
root@debian:/home/nawak#[/code]

ca a l’air d’etre special ton truc,une installation specifique peut-etre?

si c’est pour la meteo il y a quelque chose de prevu:—http://wiki.debian.org/DebianGis

je reve de ce genre d’installation,une “vrai” station meteo!!..qui fonctionne a base de technologie linux

je vais vous embeter en une ligne de developpement:
il faut savoir qu’il s’agit d’“ordinateur” avant d’etre une marque ,linux, windows ou autres…ca risque d’en faire avancé plus d’un :024 :020

Salut,
dsl pour ce délai de réponse.

1/owread est en fait 1 run de owfs (1-wire) qui permet de lire des sondes de températures via usb.

donc ce script est quasi unique.
le besoin est juste d’arrondire la valeur transmise par la sonde (sur 4 cheiffre apres la virgule !). ceci evit d’avoir des logs trop importantes pour les températures de pieces.

2/ groupwrite est lui lie a l’écriture des données recues depuis la sonde (ou autre participants domotique). Il fait partie de linknx.

donc, faisons abstraction de tout cela. Le script fonctionnait parfaitement sur lenny, et plus du tout depuis le passage a squeeze. Le remplacement de bc par wcalc me retourne des valeurs en dessous de la normale( en fait, pour etre honete, je pige rien au script qui me pose probleme, je ne fais qu’intégrer…).
voila pour la petite histoire.
donc BC <> WCALC ???
Merci.
Arnaud

1 up ?
Merci

bonjour,
finalement, l’instal du package bc est opérationel sur squeeze. Donc pb résolu !
Merci à vous.
Arnaud

Salut.
Résolu ? => coche verte! :006

right & sorry :slightly_smiling:

Ma première idée était donc la bonnne!
On cherche souvent des causes complexes, alors que c’est tout con …
Vous connaissez le premier principe de l’électricité ?
.
.
.
.
.

ça marche mieux quand on branche l’alim …