Pages : 1
#1 Le 03/03/2010, à 23:23
- n3o51
calcule avec bash
Bonsoir je voudrais savoir si une opération soit possible en bash
de cette façon
resultat=racine($1)*$2
ou dites moi si c'est peine perdu
Merci a vous
Welcome to the real world
________________________________
Hors ligne
#2 Le 03/03/2010, à 23:28
- wido
Re : calcule avec bash
Bonjour,
resultat=$(( $1 * $2 ))
EDIT: content j'ai posté le 1er pour une réponse qui n'est pas de mon niveau
Dernière modification par wido (Le 03/03/2010, à 23:29)
Hors ligne
#3 Le 03/03/2010, à 23:40
- n3o51
Re : calcule avec bash
Oo j'ai peur que ça ne marche pas cela va simplement faire une multiplication non ?
moi je voudrais que resultat soit racine carré de $1 * ensuite multiplié par $2
resutat=racine(100)*2
echo $resultat
affiche 20
EDIT : j'ai testé un script avec ce que tu donne
./racine.sh 100 2
m'affiche rien
Dernière modification par n3o51 (Le 03/03/2010, à 23:47)
Welcome to the real world
________________________________
Hors ligne
#4 Le 03/03/2010, à 23:55
- HP
Re : calcule avec bash
EDIT : j'ai testé un script avec ce que tu donne […] m'affiche rien
si, si (si on lui demande d'afficher, il affiche) :
# function multi() { echo $(( $1 * $2 )); }
# multi 2 4
8
pour la racine carrée, c'est à peine plus compliqé :
# function sqrt() { echo -e "sqrt($1)\nquit\n" | bc -q -i; }
# sqrt 4
2
et ta solution, pourrais ressembler à çà, en mixant les deux :
# function mix() { echo $(( $(sqrt $1) * $2 )); }
# mix 9 2
6
# mix 4 3
6
Mais, évidemment, si on utilise bash dans les opération, on perd en précision, puisque bash ne sait gérer que les entiers (comme chacun le sait)…
# mix 3 2
2
alors que le résultat devrait approcher 3,464101615 ;
en effet, pour bash la racine carrée de 3 ne vaut que 1, au lieu de 1.732050808 !
Dernière modification par HP (Le 04/03/2010, à 00:11)
cat /dev/urandom >/dev/null 2>&1 #github
Hors ligne
#5 Le 04/03/2010, à 00:05
- wido
Hors ligne
#6 Le 04/03/2010, à 00:10
- n3o51
Re : calcule avec bash
Bonsoir merci a vous deux mais dans mon script bash j'ai droit a
./racine.sh: line 3: sqrt : commande introuvable
./racine.sh: line 3: * 2 : erreur de syntaxe : opérande attendue (error token is "* 2 ")
je vois pas !!!
Welcome to the real world
________________________________
Hors ligne
#7 Le 04/03/2010, à 00:17
- n3o51
Re : calcule avec bash
oui j'avais pas vu ton nouvelle edit HP alors cela ne fonctionnera pas
car je peut avoir $1 qui vaut 974 par exemple donc racine de 974x2=62,417946137
Sinon pour mon info personnel je voudrais savoir pourquoi ça ne passe pas quel paquet faut-il installé pour sqrt et c'est quoi ce token ?
Merci quand même , il va falloir trouvé une solution alternative
Dernière modification par n3o51 (Le 04/03/2010, à 00:19)
Welcome to the real world
________________________________
Hors ligne
#8 Le 04/03/2010, à 00:26
- nesthib
Re : calcule avec bash
^^ faut pas recopier bêtement sans essayer de comprendre relis bien le post de HP, il définit d'abord une fonction sqrt…
pour ton message, de toute évidence ta commande sqrt n'existe pas (plantage) donc rien n'est retourné et comme bash essaie de faire l'opération ( * 2) → replantage
un exemple un poil plus propre pour les calculs non entiers (pas de echo ni pipe) :
bc -l <<<"(1+sqrt(5))/2"
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#9 Le 04/03/2010, à 00:29
- HP
Re : calcule avec bash
^^ faut pas recopier bêtement sans essayer de comprendre
Je crois que c'est çà le plus gros souci !
cat /dev/urandom >/dev/null 2>&1 #github
Hors ligne
#10 Le 04/03/2010, à 00:34
- n3o51
Re : calcule avec bash
Effectivement je me suis trompé dans mes fichiers de test et dans celui testé je n'avait pas definit ma fonction, mais étant donné que Bash n'utilise pas les nombres a virgule cela ne résoudra pas mon soucis merci a vous pour le complément d'informations.
Dernière modification par n3o51 (Le 04/03/2010, à 00:34)
Welcome to the real world
________________________________
Hors ligne
#11 Le 04/03/2010, à 00:53
- uboops
Re : calcule avec bash
Si ça peut marcher car:
...en effet, pour bash la racine carrée de 3 ne vaut que 1, au lieu de 1.732050808 !
comme ca:
bc -l <<<"(sqrt(3))"
1.73205080756887729352
Ou en jonglant un peu et en mettant un nombre de 0 paire, il est possible d'obtenir le résultat, par exemple (3 et 20 zéro):
function sqrt() { echo -e "sqrt($1)\nquit\n" | bc -q -i; }
sqrt 300000000000000000000
sqrt(300000000000000000000)
17320508075
-->donc le résultat est: 1.7320508075
(3 et 60 zéro) pour encore plus de présision:
sqrt 3000000000000000000000000000000000000000000000000000000000000
sqrt(3000000000000000000000000000000000000000000000000000000000000)
1732050807568877293527446341505
-->donc le résultat est: 1.732050807568877293527446341505
etc...
Dernière modification par uboops (Le 04/03/2010, à 01:08)
“Au lieu de faire que ce qui fût juste fût fort, on a fait que ce qui fût fort fût juste.” (Blaise Pascal).
Hors ligne
#12 Le 04/03/2010, à 00:59
- JB-home
Re : calcule avec bash
le nombre doit être la partie entière du résultat
je n'arrive pas non plus a un résultat correct
Hors ligne
#13 Le 04/03/2010, à 02:44
- JB-home
Re : calcule avec bash
grâce à vous j'ai enfin réussi
voilà le script ( jme suis peut être compliqué la tache ) :
#!/bin/bash
wget --load-cookies cookies.txt --output-document=1.html "http://www.newbiecontest.org/epreuves/prog/prog3_1.php"
var1=`cut -c32-35 1.html`
wget --load-cookies cookies.txt --output-document=2.html "http://www.newbiecontest.org/epreuves/prog/prog3_2.php"
var2=`cut -c32-35 2.html`
echo $var1 et $var2
function sqrt() { echo -e "sqrt($var1) * $var2" | bc -q -i; }
sqrt >3.txt
result=`tail -1 3.txt`
firefox http://www.newbiecontest.org/epreuves/prog/verifpr3.php?solution=$result
Dernière modification par z0rg> (Le 04/03/2010, à 02:46)
Hors ligne
#14 Le 04/03/2010, à 08:35
- nesthib
Re : calcule avec bash
[résolu] ?
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#15 Le 04/03/2010, à 09:51
- Alambique
Re : calcule avec bash
calc -p -- "ton calcul"
Mal-pensant, mais résolument linuxien.
Hors ligne
#16 Le 04/03/2010, à 13:08
- JB-home
Re : calcule avec bash
[résolu] ?
quand n3o51 passera par là, il le mettra en résolu
Dernière modification par z0rg> (Le 04/03/2010, à 13:08)
Hors ligne
Pages : 1