GNT sans publicité, site mobile, fonctionnalitées exclusives...

echo dans un script bash

Le
Hugolino
Bonjour,

J'ai besoin de faire un calcul dans un script bash.

En console, la ligne
echo "73/10" | bc -l
répond
7.30000000000000000000

Dans mon script bash, la ligne
FNumberFormatedìho "$FNumberNumerateur/$FNumberDenominateur" | bc -l
produit
/usr/local/bin/GeneThumb: line 403: 73/10: Aucun fichier ou
répertoire de ce type

Il y a sans doute des moyens plus évolué de récuperer le résultat d'une
division dans un script bash et je suis ouvert à toute proposition (mais
j'ai besoin du chiffre après la virgule donc la ligne
FNumberFormated=$(($FNumberNumerateur/$FNumberDenominateur))
ne convient pas.

Mais j'aimerais bien savoir pourquoi le résultat d'une commande n'est
pas le même en console et dans un script.
Tout ce passe comme si le shell tentait d'interpréter l'argument que je
pipe à bc -l. Comment éviter cela ?


Merci de votre aide


--
| > la ces la galer totale, je ne suis pas ariver a en instaler un seul.
| Forcément, si on tape ./konfigur && maike && maike installe ça fonctionne
| moins bien. -+- remarque acide dans fcol.debats -+-
Hugo (né il y a 1 340 563 068 secondes)
Lire les 14 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 3
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
lhabert
Le #701359
Hugolino :

FNumberFormatedìho "$FNumberNumerateur/$FNumberDenominateur" | bc -l


Là, tu lances la commande « "$FNumberNumerateur/$FNumberDenominateur" | bc -l »
avec la variable d'environnement « FNumberFormated » positionnée à « echo »
(enfin je ne sais pas si elle est définie pour le membre de gauche du pipe
ou pour les deux, et j'ai la flemme de tester). Ce que tu veux faire, c'est :

FNumberFormated=`echo "$FNumberNumerateur/$FNumberDenominateur" | bc -l`

Mais j'aimerais bien savoir pourquoi le résultat d'une commande n'est
pas le même en console et dans un script.


Tu n'as pas tapé la même commande.

Hugolino
Le #701358
Le Tue, 17 Oct 2006 23:39:38 +0200, Hugolino a écrit:

Bonjour,

J'ai besoin de faire un calcul dans un script bash.

En console, la ligne
echo "73/10" | bc -l
répond
7.30000000000000000000

Dans mon script bash, la ligne
FNumberFormatedìho "$FNumberNumerateur/$FNumberDenominateur" | bc -l
produit
/usr/local/bin/GeneThumb: line 403: 73/10: Aucun fichier ou
répertoire de ce type


J'ai trouvé (par hasard) que la ligne
FNumberFormated=$(echo "$FNumberNumerateur/$FNumberDenominateur" | bc -l
fonctionnait.
Mais je ne sais pas pourquoi, donc ce que je disais reste valable.

Mais j'aimerais bien savoir pourquoi le résultat d'une commande n'est
pas le même en console et dans un script.


Marre de galérer pour mettre au point des scripts :(


--
je sais pas di il y a quelqu'un sur internet à 1h48 mais j'aimerais bien
parler!
bisous
-+- poisson des iles In: Guide du linuxien pervers - "Bavardage..." -+-

Hugolino
Le #701357
Le Tue, 17 Oct 2006 21:58:43 +0000 (UTC), Luc Habert a écrit:
Hugolino :

FNumberFormatedìho "$FNumberNumerateur/$FNumberDenominateur" | bc -l


Là, tu lances la commande « "$FNumberNumerateur/$FNumberDenominateur" | bc -l »
avec la variable d'environnement « FNumberFormated » positionnée à « echo »


Je n'ai pas compris ton histoire de "variable d'environnement", peux-tu
préciser
(enfin je ne sais pas si elle est définie pour le membre de gauche du pipe
ou pour les deux, et j'ai la flemme de tester). Ce que tu veux faire, c'est :

FNumberFormated=`echo "$FNumberNumerateur/$FNumberDenominateur" | bc -l`


Ce que j'ai fini par trouver mais *par hasard*, à force de tester tout
et n'importe quoi, et c'est ce qui est lassant.

Mais j'aimerais bien savoir pourquoi le résultat d'une commande n'est
pas le même en console et dans un script.


Tu n'as pas tapé la même commande.


A mon sens (mais je sais bien que je suis dans l'erreur), si. Puisque
dans la ligne
TestHabertìho "$FNumberNumerateur/$FNumberDenominateur" | bc -l
les deux variable $FNumberNumerateur et $FNumberDenominateur doivent
être évaluées avant d'être concaténées avec le "/" puis envoyées à bc.

Merci de ton aide.

--
PRIORITY ONE
INSURE RETURN OF ORGANISM FOR ANALYSIS.
ALL OTHER CONSIDERATIONS SECONDARY.
CREW EXPENDABLE.


talon
Le #701356
Hugolino

Bonjour,

J'ai besoin de faire un calcul dans un script bash.

En console, la ligne
echo "73/10" | bc -l
répond
7.30000000000000000000

Dans mon script bash, la ligne
FNumberFormatedìho "$FNumberNumerateur/$FNumberDenominateur" | bc -l
produit
/usr/local/bin/GeneThumb: line 403: 73/10: Aucun fichier ou
répertoire de ce type



tulipe% Nums;Den;awk "BEGIN {print $Num/$Den}"
7,3

--

Michel TALON

Pascal Bourguignon
Le #701355
Hugolino
J'ai trouvé (par hasard) que la ligne
FNumberFormated=$(echo "$FNumberNumerateur/$FNumberDenominateur" | bc -l
fonctionnait.
Mais je ne sais pas pourquoi, donc ce que je disais reste valable.


La programmation ce n'est pas un jeu de hasard. Si tu veux du hasard,
vas à Las Vegas!

Mais j'aimerais bien savoir pourquoi le résultat d'une commande n'est
pas le même en console et dans un script.


Marre de galérer pour mettre au point des scripts :(


Bin, tu pourrais peut être commencer par apprendre le langage?

man bash


--
__Pascal Bourguignon__ http://www.informatimago.com/

READ THIS BEFORE OPENING PACKAGE: According to certain suggested
versions of the Grand Unified Theory, the primary particles
constituting this product may decay to nothingness within the next
four hundred million years.


Publicité
Suivre les réponses
Poster une réponse
Anonyme