[shell] mod, div ?!!
Résolu
sassoura
Messages postés
21
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
Utilisateur anonyme -
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.-
En 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 -
-
Donc 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 ;-) -
-
Il 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...
-