Skip to content

La vie rêvée d’Akim

…ou le zèbre qui voulait être un homme

  • Style de vie
  • Informatique
  • Photographie
  • Musique
  • English (US)English (US)
  • FrançaisFrançais

Vérifier si une variable est multiple de 3 en bash

Posted on lundi 3 janvier 2011 - mercredi 2 septembre 2015 by Akim

Je cherchais à mettre en page un tableau avec trois colonnes. Et pour ce faire, j’ai cherché comment vérifier si un compteur est multiple de 3 afin d’ajouter un retour de chariot toutes les trois entrées. J’ai fini (ENFIN) par écrire ce script qui détermine si la variable de mon choix est effectivement un multiple de 3. Pour ce faire, je divise ma variable par 3, en utilisant BC avec scale=1 qui retourne donc une valeur avec une décimale. Ensuite je teste la décimale. Si c’est un 0, c’est un entier, donc c’est un multiple de 3. Sinon, ce n’est pas un multiple de 3. Voici le résultat:

#!/bin/bash
test=$(echo "scale=1; $1/3" | bc)
y=1
for i in $(echo $test | tr "." "\n")
do
if [ $y -eq 2 ]
then
if [ $i -eq 0 ]
then
echo "$test" est un multiple de 3
fi
fi
((y++))
done
Posted in InformatiqueTagged bash, calcul, linux, multiple

Navigation de l’article

Monter une image système dans Windows 7
Téléphonie mobile: Réagissez, dites non à l’abonnement et aux appareils subventionnés

7 Comments

  1. tap telrad dit :
    mardi 12 février 2013 à 12:02

    Je cherchais le même chose, n’ayant pas pu faire fonctionner votre script j’ai fini par trouver ceci :
    #!/bin/bash
    x=0
    test=$(echo “scale=1; $x/5” | bc)
    if [[ $test == *([0-9]).+([0]) ]]; then
    echo “multiple de 5”
    fi
    merci…

  2. Akim dit :
    mardi 12 février 2013 à 12:06

    Bonjour,

    Merci d’avoir partagé. Quel problème avez-vous rencontré avec mon script ?

  3. tap telrad dit :
    mardi 12 février 2013 à 12:18

    J’ai une boucle for pour ecrire un fichier html avec un tableau:
    x=0
    for i in *.pdf; do
    echo -e “ligne à ajouter dans le fichier” >> ../index.html
    ((x++))
    done
    et toutes les 5 lignes ajouter une ligne au tableau html
    J’ai donc ajouté :
    test=$(echo “scale=1; $x/5” | bc)
    if [[ $test == *([0-9]).+([0]) ]]; then
    echo “Multiple de 5”
    fi
    dans ma boucle

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Proudly powered by WordPress | Theme: micro, developed by DevriX.