• [^] # Re: À propos de ta syntaxe

    Posté par (site web personnel) . En réponse au message comment je vide proprement mon /boot des vieux noyaux installés par ma distrib. Évalué à 2.

    J'ai pas de debian sous la main, mais c'est le {..} qui passe pas avec les arguments en variable. Ainsi, for i in {"$a".."$b"} devient for i in "{24..36}", ce qui ne fait qu'une seule boucle, et ne renvoie rien du coup.

    Du coup, je m'excuse pour le seq, car soit tu utilises un $(seq "$a" "$b"), ou $(eval echo "{$a..$b}"). Bash doit évaluer 2 fois la demande.

    Bref, voici la version finale pour le coup (et désolé…) :

    #!/bin/bash
    # recupere la liste des paquets à desinstaller à partir des parametres.
    # VERSION sera 3.x.y
    VERSION="1ドル"
    # DEBUT et FIN seront les variantes (le z dans 3.x.y-z de la version du paquet)
    DEBUT="2ドル"
    FIN="3ドル"
    # on fait une boucle sur la sequence comprise entre $DEBUT et $FIN avec l'outil seq
    # pour chaque valeur de la boucle, on fait cherche les paquets correspondants avec dpkg -l | grep...
    # on filtre cette liste pour ne recuperer que la 2e colonne de la sortie de dpkg avec awk
    LISTE=$(for i in $(seq "$DEBUT" "$FIN"); do dpkg -l | grep "$VERSION-$i" | awk '{print 2ドル}'; done)
    # on demande à aptitude de purger tous les paquets que l'on a listés juste avant.
    echo "$LISTE"
    
    

    Ça devrait marcher, si tu pouvais confirmer.