Récuperer toutes les execution d'une commande
Fermé
xunil2003
Messages postés
766
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
29 septembre 2024
-
Modifié par xunil2003 le 28/06/2012 à 16:29
mamiemando Messages postés 33378 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 25 novembre 2024 - 28 juin 2012 à 20:23
mamiemando Messages postés 33378 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 25 novembre 2024 - 28 juin 2012 à 20:23
A voir également:
- Récuperer toutes les execution d'une commande
- Invite de commande - Guide
- Comment récupérer les messages supprimés sur whatsapp - Guide
- Recuperer video youtube - Guide
- Commande terminal mac - Guide
- Comment récupérer un compte facebook piraté - Guide
1 réponse
mamiemando
Messages postés
33378
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
25 novembre 2024
7 802
28 juin 2012 à 20:23
28 juin 2012 à 20:23
Personnellement je n'ai rien compris car les phrases sont assez incompréhensible ou les termes ambigu. Merci de soigner l'orthographe et d'être plus clair.
De manière générale un processus sous linux peut être vu comme une entité avec
- d'une entrée sur laquelle on lit de l'information (par défaut l'entrée standard /dev/stdin, par exemple pour une saisie clavier)
- d'une sortie (par défaut la sortie standard /dev/stdout pour écrire du texte dans la console, ou la propager vers un autre programme au travers d'un pipe)
- d'une porte de sortie pour les erreurs (par défaut la sortie d'erreur standard /dev/stderr)
En shell, les opérateurs de redirections servent à modifier la provenance (dans le cas de l'entrée) ou la destination (dans le cas des sorties) de ces trois flux d'information. Parmi eux on trouve :
- entrée : <
- sortie : >, >> (notés également 1> et 1>>), |
- sortie d'erreur : 2>, 2>>
Si tu ne connais pas ces opérateurs, je t'invite à lire un cours de shell, en particulier le pipe (|) car c'est celui dont tu as besoin (il est a priori inutile de stocker les sorties de cm15 dans un fichier intermédiaire, donc un pipe est suffisant).
Quelques soient les redirections que tu définis, ces opérateurs ne font que réaiguiller le flux texte qui entre ou sort d'une commande. Les variables internes à ce programme ne peuvent pas être récupérées de cette manière. Par contre on peut imaginer extraire de ce flux texte les informations importantes.
Exemple :
Je veux lister les paquets debian qui ne sont pas dans l'état ii de mon système. Cette information peut être déduite à partir de ce qu'écrit la commande dpkg -l.
dpkg -l liste les paquets installés, partiellement installés etc... et dans mon cas je veux dégager les paquets dans l'état "rc"
grep permet de filtrer des lignes conformément à un filtre (par exemple grep "^rc" ne conserve que les lignes qui commencent par rc.
cut permet d'extraire une "colonne" conformément à un séparateur.
Pour te faire une idée tape ces commandes :
Dans ton cas c'est le même principe, on peut imaginer faire un pipe sur cm15 avec un script shell écrit à la main ou awk qui fait ce qui faut en fonction de la ligne reçue. Personnellement je partirais sur awk c'est ce qui me paraît le plus simple (et je t'invite donc à aussi lire un cours sur awk :p). Un programme awk permet d'écrire plus facilement ce que tu as commencé à écrire dans ton script shell.
Bonne chance
De manière générale un processus sous linux peut être vu comme une entité avec
- d'une entrée sur laquelle on lit de l'information (par défaut l'entrée standard /dev/stdin, par exemple pour une saisie clavier)
- d'une sortie (par défaut la sortie standard /dev/stdout pour écrire du texte dans la console, ou la propager vers un autre programme au travers d'un pipe)
- d'une porte de sortie pour les erreurs (par défaut la sortie d'erreur standard /dev/stderr)
En shell, les opérateurs de redirections servent à modifier la provenance (dans le cas de l'entrée) ou la destination (dans le cas des sorties) de ces trois flux d'information. Parmi eux on trouve :
- entrée : <
- sortie : >, >> (notés également 1> et 1>>), |
- sortie d'erreur : 2>, 2>>
Si tu ne connais pas ces opérateurs, je t'invite à lire un cours de shell, en particulier le pipe (|) car c'est celui dont tu as besoin (il est a priori inutile de stocker les sorties de cm15 dans un fichier intermédiaire, donc un pipe est suffisant).
Quelques soient les redirections que tu définis, ces opérateurs ne font que réaiguiller le flux texte qui entre ou sort d'une commande. Les variables internes à ce programme ne peuvent pas être récupérées de cette manière. Par contre on peut imaginer extraire de ce flux texte les informations importantes.
Exemple :
Je veux lister les paquets debian qui ne sont pas dans l'état ii de mon système. Cette information peut être déduite à partir de ce qu'écrit la commande dpkg -l.
dpkg -l liste les paquets installés, partiellement installés etc... et dans mon cas je veux dégager les paquets dans l'état "rc"
grep permet de filtrer des lignes conformément à un filtre (par exemple grep "^rc" ne conserve que les lignes qui commencent par rc.
cut permet d'extraire une "colonne" conformément à un séparateur.
Pour te faire une idée tape ces commandes :
dpkg -l dpkg -l | grep "^rc" dpkg -l | grep "^rc" | cut -d" " -f3
Dans ton cas c'est le même principe, on peut imaginer faire un pipe sur cm15 avec un script shell écrit à la main ou awk qui fait ce qui faut en fonction de la ligne reçue. Personnellement je partirais sur awk c'est ce qui me paraît le plus simple (et je t'invite donc à aussi lire un cours sur awk :p). Un programme awk permet d'écrire plus facilement ce que tu as commencé à écrire dans ton script shell.
Bonne chance