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 :

tme cp dans un fichier


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    amateur
    Inscrit en
    Octobre 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : amateur

    Informations forums :
    Inscription : Octobre 2011
    Messages : 7
    Par défaut tme cp dans un fichier
    Bonjour

    Cela fait 2 jours que je tente de faire un truc et je sèche donc je demande un coup de main. Je n'ai pas trouvé ni ici ni sur google.

    Quand je fais :

    je vois bien dans toto que mon fichier toto contient le résulta de ls.
    Donc j'ai voulu mettre dans un fichier la durée d'une commande, j'ai donc fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    time cp /home/repertoire/fichier.doc /home/repertoire/fichier1.doc > toto
    toto = $(time cp /home/repertoire/fichier.doc /repertoire/Linux/fichier1.doc)
    J'ai tenté avec >$ toto et d'autres trucs trouvés ça et là

    Je pense avoir fait le tour................. sauf la bonne méthode.

    Une petite aide svp

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 658
    Par défaut
    Bonjour,


    time est une commande interne de bash.
    en effet, time envoie sa sortie sur la sortie d'erreur (stderr => 2).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $ var=$( { time ls ~ >/dev/null 2>&1;} 2>&1)
    $ echo "$var"
     
    real	0m0.004s
    user	0m0.000s
    sys	0m0.002s
    les sorties standard (stdout => 1) et d'erreur de la commande ls sont redirigées vers /dev/null;
    et la sortie d'erreur de la liste de commande time ls est redirigée vers la sortie standard.

    time est une commande externe, sous /usr/bin/, qui possède une option -o file (-o comme output)
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre du Club
    Homme Profil pro
    amateur
    Inscrit en
    Octobre 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : amateur

    Informations forums :
    Inscription : Octobre 2011
    Messages : 7
    Par défaut
    euh

    j'ai adapté ( mais cela ne va pas ) ce que tu m'as dis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var= $( { time cp /home/repertoire/fichier.doc /home/repertoire/fichier1.doc > /dev/null 2>&1;} 2>$1)
    Ce que je voulais c'est avec un fichier ( var pour le coup ou tempdetraitement... ) qui se retrouve crée dans mon répertoire que je puisse utiliser ensuite.

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 658
    Par défaut
    rtfm

    edit:
    ok, c'est un peu court , alors :
    si tu veux rediriger la sortie de time vers un fichier, fais comme je l'ai fait avec ls...
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #5
    Membre du Club
    Homme Profil pro
    amateur
    Inscrit en
    Octobre 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : amateur

    Informations forums :
    Inscription : Octobre 2011
    Messages : 7
    Par défaut
    J'ai refait comme tu m'as dit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var= $( { time cp /home/repertoire/fichier.doc /home/repertoire/fichier1.doc > /dev/null 2>&1;} 2>$1)
     
    echo "$var"
    Cela ne fonctionne mais je n'ai rien dans var

    echo "$var" renvoie une ligne vide

    @

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 658
    Par défaut
    il ne doit pas y avoir d'espaces autour du =

    pourquoi utiliser une variable si tu veux le résultat dans un fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $ > monFichier
    $ { time cp monFichier /tmp/monFicier;} 2>/tmp/time.txt
    $ cat /tmp/time.txt
     
    real	0m0.003s
    user	0m0.000s
    sys	0m0.002s
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

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

Discussions similaires

  1. Lire un attribut dans un fichier XML en C++
    Par ti.k-nar dans le forum XML
    Réponses: 2
    Dernier message: 14/10/2002, 15h22
  2. Balises HTML dans un fichier XML
    Par Bastet79 dans le forum XML/XSL et SOAP
    Réponses: 12
    Dernier message: 04/09/2002, 15h29
  3. Sauvegarder une surface dans un fichier
    Par Freakazoid dans le forum DirectX
    Réponses: 6
    Dernier message: 18/08/2002, 15h23
  4. séparateurs dans un fichier
    Par manuhard dans le forum Langage
    Réponses: 5
    Dernier message: 13/08/2002, 11h30
  5. enregistrer dans un fichier avec une appli mdi
    Par ferrari dans le forum C++Builder
    Réponses: 4
    Dernier message: 05/05/2002, 15h17

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