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

C Discussion :

Récupérer des variables en script shell


Sujet :

C

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 63
    Points : 40
    Points
    40
    Par défaut Récupérer des variables en script shell
    je souhaiterais récupérer des variables utilisées dans mon code C pour les intégrer dans le system("commande unix");
    Merci.

  2. #2
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour,
    Les fonctions sprintf ou strcat peuvent servir à ça.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    #include <string.h>
    #include <stdio.h>
    #include <stdlib.h>
    /* programme qui prend en arguments 
        1- le nom du programme à appeler
        2- l'argurment à passer au programme */
    int main(int argc, char *argv[]) 
    {
        if(argc == 3) {
            char buffer[256];
            if(strlen(argv[1]) + strlen(argv[2]) < (sizeof buffer - 2)) {
                sprintf("%s %s", argv[1], argv[2]);
                system(buffer);
            } else {
                printf("arguments trop longs\n");
            }
        } else {
            printf("%s nécessite deux arguments\n", argv[0]);
        }
        return 0;
    }

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 63
    Points : 40
    Points
    40
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    int main(int argc, char *argv[]) 
    {
        char * chaine;
    	chaine = "2222";
    	argv[1] = "sed -i '/$chaine/d' test.txt";
    	argv[1] = chaine;
    	if(argc == 3) {
            char buffer[256];
            if(strlen(argv[1]) + strlen(argv[2]) < (sizeof buffer - 2)) {
                sprintf("%s %s", argv[1], argv[2]);
                system(buffer);
            } else {
                printf("arguments trop longs\n");
            }
        } else {
            printf("%s nécessite deux arguments\n", argv[0]);
        }
        return 0;
    }
    Voilà la commande que je veux exécuter, et bien sur cela ne marche pas.
    Je pense que je n'ai pas compris le principe de ton programme.

  4. #4
    Invité(e)
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    char * chaine;
    chaine = "2222";
    argv[1] = "sed -i '/$chaine/d' test.txt";
    argv[1] = chaine;
    Il ne faut pas utiliser = pour copier des chaines de caractères.

    Pourquoi ne pas écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    char chaine[64];
    char commande[256];
     
    strcpy(chaine, "2222");
    sprintf(commande, "sed -i '/%s/d' test.txt", chaine);
    system(commande);

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 63
    Points : 40
    Points
    40
    Par défaut
    Merci ça fonctionne impecc !

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

Discussions similaires

  1. récupérer des variables d'un fichier dans un shell
    Par chloro69 dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 11/03/2008, 14h49
  2. Récupérer des variables Perl dans un script PHP
    Par barabath dans le forum Langage
    Réponses: 2
    Dernier message: 10/04/2006, 01h27
  3. [Swishmax] Récupérer des variables php
    Par denis finch dans le forum Flash
    Réponses: 3
    Dernier message: 23/12/2005, 15h29
  4. [SQL] Récupérer des variables de formulaire dans une requête SQL
    Par psychoBob dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 22/11/2005, 18h44
  5. [AS2] Récupérer des variables
    Par ooyeah dans le forum ActionScript 1 & ActionScript 2
    Réponses: 6
    Dernier message: 05/08/2005, 14h01

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