IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Connaitre le nombre d'arguments d'une boucle for avant parcours de celle-ci


Sujet :

Shell et commandes GNU

  1. #1
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 273
    Points : 12 708
    Points
    12 708
    Par défaut Connaitre le nombre d'arguments d'une boucle for avant parcours de celle-ci
    Bonjour,

    Est-ce qu'il existe une méthode pour connaitre le nombre d'argument dans une boucle for sans avoir parcouru sa liste (donc au départ de la boucle) ?

    Le passage par une variable intermédiaire ne me convient pas car je peux avoir des arguments avec des espaces.
    Cordialement.

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 549
    Points : 19 376
    Points
    19 376
    Par défaut
    et en passant par un tableau intermédiaire ?

    et (au fait) c'est pour quoi faire ?
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 273
    Points : 12 708
    Points
    12 708
    Par défaut
    Pour le tableau, cela ne m’intéresse pas non plus car faut que cela tourne aussi bien en bash qu'en ksh88.

    Mon besoin, c'est que je parcours une liste de fichier et j'ai besoin de savoir le nombre de fichiers que j'ai dans la boucle elle-même car je dois générer un nom qui comporte entre autre le nombre de fichier total...

    Mais bon, j'ai trouvé une solution qui me convient:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    set "repertoire/"*.gz
    nb=${#@}
    for i in "${@}"
    do
    ...
    done
    Je mets donc en résolu, mais s'il y a une méthode (genre une variable spéciale pour le for à regarder), je suis preneur.
    Cordialement.

  4. #4
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 882
    Points
    7 882
    Par défaut
    Il n'y a pas de variable magique, ton approche portable est la bonne.

    Tu peux supprimer le in "${@}" vu que c'est ce que prends for par défaut:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    set "repertoire/"*.gz
    nb=${#@}
    for i
    do
    ...
    done
    ɹǝsn *sıɹɐlos*

  5. #5
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 273
    Points : 12 708
    Points
    12 708
    Par défaut
    Je sais que l'on peut se passer d'être explicite dans le cas du "${@}" pour la boucle for, mais comme le script est destiné à d'autres personnes qui ne connaissent pas spécialement le shell (même si certains disent le contraire ), je préfère garder la syntaxe complète.
    Cordialement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Toutes versions] Arreter une boucle FOR avant une valeur connue
    Par sisko74 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 18/02/2016, 02h37
  2. Sortir d'une boucle for avant la fin
    Par sandball22 dans le forum C
    Réponses: 4
    Dernier message: 17/05/2011, 14h00
  3. Réponses: 1
    Dernier message: 29/12/2010, 15h10
  4. Réponses: 6
    Dernier message: 12/10/2008, 20h33
  5. Connaitre le nombre d'insertion dans une table
    Par vodevil dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 01/11/2005, 15h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo