script pour simuler la commande cat
Répondre à la discussion
Affichage des résultats 1 à 11 sur 11

script pour simuler la commande cat



  1. #1
    kizakoo

    script pour simuler la commande cat


    ------

    Bonjour, le prof nous a demandé d'écrire un script shell qui, lorsqu'il sera exécuté, fera exactement comme la commande cat. Voici ce que le prof propose:

    Code:
    #!/bin/bash
    ifs=$IFS                                              #je ne comprends pas l’intérêt de cette ligne
    IFS = $'  '
    for x in $1
    do
        while read x
       do
           echo $x
       done
    done 
    IFS=$ifs                                            #je ne comprends pas l’intérêt de cette ligne


    mes questions:

    1/ Sachant que $1 est un fichier ... x est censé être un mot du fichier ?
    2/ Quelle est la condition d’arrêt de la boucle while ?
    3/ Quelle est la condition d’arrêt de la boucle for ?

    Merci de m'éclairer

    -----
    Dernière modification par JPL ; 27/09/2019 à 17h02. Motif: Ajout de la balise Code (#) pour garder l'indentation

  2. #2
    pm42

    Re : script pour simuler la commande cat

    Citation Envoyé par kizakoo Voir le message
    1/ Sachant que $1 est un fichier ... x est censé être un mot du fichier ?
    Non, c'est le nom du fichier. Le problème c'est que "for x in $1" n'a pas de sens. Ce devrait être "for x in $*" pour faire la boucle qui parcourt tous les noms de fichier donnés en argument.

    Citation Envoyé par kizakoo Voir le message
    2/ Quelle est la condition d’arrêt de la boucle while ?
    Tu devrais lire la doc de read dans le shell.

    Citation Envoyé par kizakoo Voir le message
    3/ Quelle est la condition d’arrêt de la boucle for ?
    Voir la réponse à la question 1.

  3. #3
    kizakoo

    Re : script pour simuler la commande cat

    $* est la liste des arguments n'est-ce-pas ?alors qu'ici il y'a un seul argument qui est le nom du fichier

  4. #4
    pm42

    Re : script pour simuler la commande cat

    Citation Envoyé par kizakoo Voir le message
    $* est la liste des arguments n'est-ce-pas ?alors qu'ici il y'a un seul argument qui est le nom du fichier
    Non. Lis la doc de cat. Et s'il n'y a qu'un seul argument, on ne fait pas une boucle dessus.

  5. A voir en vidéo sur Futura
  6. #5
    kizakoo

    Re : script pour simuler la commande cat


  7. #6
    Chanur

    Re : script pour simuler la commande cat

    [QUOTE=kizakoo;6438350]
    Code:
    ifs=$IFS                                              #je ne comprends pas l’intérêt de cette ligne
    sauvegarder la valeur de IFS (dans ifs) avant de la modifier


    Code:
    IFS=$ifs                                            #je ne comprends pas l’intérêt de cette ligne
    restaurer la valeur originelle de IFS
    Ce qui se conçoit bien s'énonce clairement ; et les mots pour le dire arrivent aisément.

  8. #7
    pm42

    Re : script pour simuler la commande cat

    Citation Envoyé par Chanur Voir le message
    restaurer la valeur originelle de IFS
    Ce qui est totalement inutile dans ce script au passage.

  9. #8
    Chanur

    Re : script pour simuler la commande cat

    Citation Envoyé par pm42 Voir le message
    Ce qui est totalement inutile dans ce script au passage.
    Possible : de toutes façons, je n'ai rien compris au script. Mais il me semble que c'est judicieux si la variable IFR existe avent le script et est exportée (auquel cas la valeur qu'on lui donne dans le script perdure après la fin du script)

    Mais ce qui est plus important, pour moi, "read x" signifie "lire le prochain mot sur l'entrée standard et l'affecter à la variable x". Du coup, le script n'a aucun sens ...
    (sais compter que IFR=$ifr ne doit pas comporter de blancs, sinon ça signifie "lancer l'exécutable IFR en lui passant les paramètres = et $ifr")

    Soit le prof est un sacré farceur, soit c'est le primo-posteur ...
    Ce qui se conçoit bien s'énonce clairement ; et les mots pour le dire arrivent aisément.

  10. #9
    Chanur

    Re : script pour simuler la commande cat

    Non, vérification faite, tu as raison, pm42. Du coup, la sauvegarde de la valeur de IFR ne sert à rien non plus (et je ne comprends toujours rien au script ).
    Ce qui se conçoit bien s'énonce clairement ; et les mots pour le dire arrivent aisément.

  11. #10
    polo974

    Re : script pour simuler la commande cat

    moi, je propose:
    Code:
    #!/bin/sh
    cat "$@"
    Jusqu'ici tout va bien...

  12. #11
    CM63

    Re : script pour simuler la commande cat

    Je suppose que dans l'exercice t'as pas le droit d'utiliser la commande cat, évidemment.

Discussions similaires

  1. probleme pour lancer une commande à travers un script au démarrage
    Par cosmoff dans le forum Programmation et langages, Algorithmique
    Réponses: 2
    Dernier message: 17/05/2018, 15h14
  2. Pression pour simuler la gravité ?
    Par invite97f5e49f dans le forum Physique
    Réponses: 49
    Dernier message: 02/02/2017, 13h28
  3. commande supplémentaire installation "automatique" logiciel via script CMD
    Par Kacaouet dans le forum Programmation et langages, Algorithmique
    Réponses: 0
    Dernier message: 17/12/2016, 09h17
  4. animation pour simuler son projet
    Par invitec2f0ffc9 dans le forum Électronique
    Réponses: 6
    Dernier message: 27/02/2012, 22h35
  5. logiciel pour simuler une vitesse
    Par invite7cecc1c1 dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 24/10/2010, 08h37