Précédent   Forum des professionnels en informatique > Systèmes > Linux > Système
Système Vos questions autour de l'administration système
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 09/02/2011, 18h33   #1
Membre du Club
 
Inscription : janvier 2007
Messages : 270
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : janvier 2007
Messages : 270
Points : 50
Points : 50
Par défaut Redirection sortie de commande

Bonjour tout le monde.
J'ai un soucis avec une redirection de sortie de commande bash

Code :
1
2
3
 
 
bash -x test2.sh &>> log2.txt
Cette commande devrait me mettre les sortie d'erreur + la sortie standart à la fin de log2.txt... Mais le deuxième ">" n'est pas accepté par bash. Est ce que vous sauriez comment je peux faire pour ne pas écraser mon fichier de sortie?

Merci d'avance.
danathane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 18h44   #2
Expert Confirmé Sénior
 
Avatar de frp31
 
Homme francois
Ingénieur systèmes et réseaux
Inscription : juillet 2006
Messages : 3 534
Détails du profil
Informations personnelles :
Nom : Homme francois
Âge : 35
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juillet 2006
Messages : 3 534
Points : 7 743
Points : 7 743
là RTFM

2>&1 log

2> log

1> log

> log

>> log

&> log

>& log

etc...
frp31 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 12/02/2011, 20h25   #3
Membre éprouvé
 
Avatar de ben.IT
 
Homme Benoît
Inscription : janvier 2009
Messages : 392
Détails du profil
Informations personnelles :
Nom : Homme Benoît
Âge : 24
Localisation : France, Puy de Dôme (Auvergne)

Informations forums :
Inscription : janvier 2009
Messages : 392
Points : 438
Points : 438
Salut danathane après avoir lu le putain de manuel , voici
la théorie :
pour rediriger la sortie standard (descripteur 1) et la sortie d'erreur d'erreur (descripteur 2) vers le même fichier, il faut rediriger un descripteur de fichier vers un autre préalablement redirigé dans un fichier.
Sous linux, 2 descripteurs de fichiers ne pouvant pointer vers le même fichier.

la pratique :
Par exemple :
Code :
mon_script.sh > log 2>&1
Ici tu rediriges, la sortie 1 vers log puis du rediriges la sortie erreur 2 vers la sortie 1.
une autre possibilité :
Code :
mon_script.sh 2> log 1>&2
ici l'inverse

à bientôt,
ben
__________________
Meet the free software gang
ben.IT est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2011, 12h20   #4
Membre Expert
 
Homme
Ingénieur développement logiciels
Inscription : octobre 2008
Messages : 1 375
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : octobre 2008
Messages : 1 375
Points : 2 034
Points : 2 034
Citation:
Envoyé par benilto Voir le message
Sous linux, 2 descripteurs de fichiers ne pouvant pointer vers le même fichier.
C'est faux, d'ailleurs rien ne t'empêche de faire :
D'accord pour le reste.
matafan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2011, 14h18   #5
Membre éprouvé
 
Avatar de ben.IT
 
Homme Benoît
Inscription : janvier 2009
Messages : 392
Détails du profil
Informations personnelles :
Nom : Homme Benoît
Âge : 24
Localisation : France, Puy de Dôme (Auvergne)

Informations forums :
Inscription : janvier 2009
Messages : 392
Points : 438
Points : 438
salut matafan,
je viens de tester ta commande, tu as effectivement raison.
a+,
ben
__________________
Meet the free software gang
ben.IT est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2011, 14h33   #6
Membre éprouvé
 
Avatar de ben.IT
 
Homme Benoît
Inscription : janvier 2009
Messages : 392
Détails du profil
Informations personnelles :
Nom : Homme Benoît
Âge : 24
Localisation : France, Puy de Dôme (Auvergne)

Informations forums :
Inscription : janvier 2009
Messages : 392
Points : 438
Points : 438
Petite précision,
je viens de réouvrir un bouquin qui traite de la programmation shell (programmation shell sous linux de Nicolas Pons). Il est bien indiqué que 2 descripteurs de fichiers ne peuvent pointer simultanément vers un seul fichier. "Ceci à cause de l'utilisation de tampons d'écriture dans la gestion des fichiers par le noyau linux. Le résultat peut être inattendu"

Voici un exemple :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Le script a débuté sur dim. 13 févr. 2011 14:25:46 CET
benilto@supercopter:~/test$ ls
f1  f2  f3  typescript
benilto@supercopter:~/test$ ls f1 f2 f3 f4 >log 2>>log
benilto@supercopter:~/test$ cat log 
f1
f2
f3
sible d'accéder à f4: Aucun fichier ou dossier de ce type
benilto@supercopter:~/test$ ls f1 f2 f3 f4 >log2 2>&1
benilto@supercopter:~/test$ cat log2
ls: impossible d'accéder à f4: Aucun fichier ou dossier de ce type
f1
f2
f3
benilto@supercopter:~/test$ exit
exit

Script complété sur dim. 13 févr. 2011 14:26:46 CET

Dans le premier cas, le message d'erreur est tronqué, il est entier dans le second.
a+,
ben
__________________
Meet the free software gang
ben.IT est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2011, 23h37   #7
Rédacteur/Modérateur
 
Avatar de lavazavio
 
Homme
Inscription : décembre 2004
Messages : 1 653
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 30
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : décembre 2004
Messages : 1 653
Points : 2 025
Points : 2 025
Pour mettre mon grain de sel :
est équivalent à :
__________________
Rédacteur et Modérateur rubrique Linux
Articles dvp.com
Man pages en français
lavazavio est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 14/02/2011, 14h26   #8
Membre éprouvé
 
Avatar de ben.IT
 
Homme Benoît
Inscription : janvier 2009
Messages : 392
Détails du profil
Informations personnelles :
Nom : Homme Benoît
Âge : 24
Localisation : France, Puy de Dôme (Auvergne)

Informations forums :
Inscription : janvier 2009
Messages : 392
Points : 438
Points : 438
Citation:
Envoyé par lavazavio Voir le message
bien pratique !
__________________
Meet the free software gang
ben.IT est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2011, 14h57   #9
Membre Expert
 
Homme
Ingénieur développement logiciels
Inscription : octobre 2008
Messages : 1 375
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : octobre 2008
Messages : 1 375
Points : 2 034
Points : 2 034
Mais non standard. D'ailleurs cette syntaxe est assez mal trouvée puisque c'est aussi une syntaxe valide en shell standard : exécution de la commande en arrière plan (&) et création/troncation du fichier "log" (>log).
matafan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2011, 15h05   #10
Membre éprouvé
 
Avatar de ben.IT
 
Homme Benoît
Inscription : janvier 2009
Messages : 392
Détails du profil
Informations personnelles :
Nom : Homme Benoît
Âge : 24
Localisation : France, Puy de Dôme (Auvergne)

Informations forums :
Inscription : janvier 2009
Messages : 392
Points : 438
Points : 438
ok bien vu.
__________________
Meet the free software gang
ben.IT est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h30.


 
 
 
 
Partenaires

Hébergement Web