Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/10/2011, 17h55   #1
Invité de passage
 
Homme
amateur
Inscription : 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
Points : 1
Points : 1
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 :
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
benoitor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/10/2011, 18h12   #2
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 071
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 071
Points : 4 154
Points : 4 154
Bonjour,


time est une commande interne de bash.
en effet, time envoie sa sortie sur la sortie d'erreur (stderr => 2).
Code :
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_BaH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/10/2011, 18h26   #3
Invité de passage
 
Homme
amateur
Inscription : 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
Points : 1
Points : 1
euh

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

Code :
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.
benoitor est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 16/10/2011, 19h11   #4
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 071
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 071
Points : 4 154
Points : 4 154
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_BaH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/10/2011, 19h34   #5
Invité de passage
 
Homme
amateur
Inscription : 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
Points : 1
Points : 1
J'ai refait comme tu m'as dit :

Code :
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

@
benoitor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/10/2011, 20h14   #6
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 071
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 071
Points : 4 154
Points : 4 154
il ne doit pas y avoir d'espaces autour du =

pourquoi utiliser une variable si tu veux le résultat dans un fichier :
Code :
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_BaH est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 16/10/2011, 21h04   #7
Invité de passage
 
Homme
amateur
Inscription : 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
Points : 1
Points : 1
youpi

Merci à toi c'est ce que je voulais.

Je vais faire résolu.

Merci encore
@
benoitor est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h22.


 
 
 
 
Partenaires

Hébergement Web