[shell] mod, div ?!!
Résolu
Bonjour,
Comment écrire en shell l'équivalent des opérateurs division euclidienne (/ en langage C) et module (% en langage C) en bash ?
Merci bien :)
Comment écrire en shell l'équivalent des opérateurs division euclidienne (/ en langage C) et module (% en langage C) en bash ?
Merci bien :)
1 réponse
-
Salut,
Je comprends que tu veux effectuer des opérations arithmétiques avec l'interpréteur de commandes (lequel? sh? bash? ...)
Le modulo et la division sont exprimé de la même manière qu'en C.
echo $((2%3)) 2 echo $((2%2)) 0
rtfm.-
ModérateurEn fait il l'a posté dans la rubrique shell donc je viens de comprendre sa question (enfin je crois) : comment écrit-on en shell une division euclidienne et un modulo.
Donc là tu as donné la réponse en bash...
En shell :
(mando@silk) (~) $ expr 16 / 3 5 (mando@silk) (~) $ expr 16 % 3 1
Pour le stocker dans une variable shell :
x=$(expr 16 / 3) echo $x
Bonne chance -
-
ModérateurDonc problème résolu !
Pense comme le dit qqchquicommenceparQ à prendre le temps de faire une recherche google, pour des questions aussi simples, normalement tu es capable de trouver par toi-même ;-)
Et surtout essaye de poser ta question plus clairement la prochaine fois ! Du coup j'ai réécrit ton message initial pour que les personnes qui tombent sur ce fil de discussion comprennent mieux ta question.
Bonne soirée ;-) -
-
ModérateurIl me semblait que l'opérateur $(( )) était spécifique à bash, mais je peux me tromper. J'avoue que je ne fais pas souvent du shell...
En même temps expr fait partie de coreutils donc qui est juste un paquet "nécessaire" sous debian, donc bon... programme externe c'est un grand mot, je pense que tu dois l'avoir partout :-) Ceci dit si la syntaxe $((...)) marche quelque soit le shell, c'est plus concis, plus lisible et plus propre...
-