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 Monday 3 January 2011 - Wednesday 2 September 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

Post navigation

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 says:
    Tuesday 12 February 2013 at 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 says:
    Tuesday 12 February 2013 at 12:06

    Bonjour,

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

  3. tap telrad says:
    Tuesday 12 February 2013 at 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

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

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