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

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

3 réflexions sur “Vérifier si une variable est multiple de 3 en bash

  1. 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. 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 de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *