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

Administration système Discussion :

Gérer une base de données avec un script shell!


Sujet :

Administration système

  1. #1
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2009
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2009
    Messages : 218
    Points : 130
    Points
    130
    Par défaut Gérer une base de données avec un script shell!
    Salut à tous!

    J'ai un projet pour lequel je coince un peu, et j'ai besoin de votre aide.
    En fait je dois ecrire un script shell sh qui émule les fonctionnalites basiques d'une base de données, qui sera contenue dans un fichier nomé sh.db par exemple. Le script doit être écrit en sh et s'exécuter sous UNIX. Vu le délai très court pour rendre mon projet(ce weekend) et que je ne suis pas très callé en programmation shell, je viens vers vous.

    Voici les fonctionnalités demandées: Pouvoir insérer une clé dans le fichier via la commande(put) ./script.sh put <key> <valeur> (si la clé existe déjà la valeur est écrasée); supprimer une entrée de la base : ./script.sh del <key> <valeur>; afficher les valeurs qui matchent avec une expression(comme avec un grep): ./script.sh select <expr>; vider la base de donnees sans supprimer le fichier: ./script.sh flush; passer le fichier en parametre avec l'option -f; creer le fichier s'il est passe en parametre et n'existe pas. Donc le script prendra des options et des parametres; et les entrees sont juste Clé=Valeur.
    Pour l'insertion et la suppresion, rien ne dois être affiché à l'écran.

    J'ai donc defini mon format de base de donnees sous la forme : Clé | Valeur; une entrée par ligne du fichier.
    J'ai ensuite écrit mon parser d'option et les fonctions à appeler en fonction des options si la syntaxe est bonne.
    Là je bloque sur la fin de mon script.
    En fait pour ce script je ne dois utiliser que du sh et pas d'exécutable.
    Alors voici mon problème:

    Je ne peux pas ajouter les entrées en fin de fichier en faisant par exemple un echo "$key | $value" >> fichier.db, car cela ne vérifie pas l'existance de l'entrée et il y a des doublons dans les entrées de la bd; j'aimerais savoir par quelle commande interne au shell(builtin) je peux faire des check sur les lignes du fichier comme dans un tableau avant l'insertion, ceci me permettrait donc de bien gérer la commande "put" de mon sgdb(mon script).
    Pour la commande "del", il faut supprimer l'entrée sans produire aucun affichage, et si le nom de la clé est juste passé en argument sans sa valeur, la clé doit restée présente mais sans contenu. J'aimerais aussi dans la mesure du possible que vous m'aidiez à ce niveau.
    Pour le select il s'agit de recupérer l'expression passer en paramètres et lister toutes les valeurs de clés comportant des caractère de l'expression; de la même manière qu'un grep; seulement je n'ai pas droit au grep. Je ne sais pas si un "sed" ferais l'affaire....

    J'aimerai aussi savoir quelle builtin appeler pour la création du fichier le cas échéant, et comment supprimer tout le contenu du fichier sans le supprimer lui même.

    Enfin si vous avez pu répondre à mes préoccupation et que vous disposer encore d'un peu de temps, j'aimerais savoir procéder pour stocker la base de données dans le programme lui même et non plus dans un fichier externe; de quelle manière puis-je stocker les entrées et les manipuler dans ce cas? c'est une option que je devrais pouvoir gérer, mais la priorité est aux premières questions.

    Merci infiniment pour votre aide précieuse.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2006
    Messages : 107
    Points : 124
    Points
    124
    Par défaut
    En fait pour ce script je ne dois utiliser que du sh et pas d'exécutable.
    Echo, sed, grep, sont déjà des exécutables...

    Je ne peux pas ajouter les entrées en fin de fichier en faisant par exemple un echo "$key | $value" >> fichier.db, car cela ne vérifie pas l'existance de l'entrée et il y a des doublons dans les entrées de la bd; j'aimerais savoir par quelle commande interne au shell(builtin) je peux faire des check sur les lignes du fichier comme dans un tableau avant l'insertion, ceci me permettrait donc de bien gérer la commande "put" de mon sgdb(mon script).
    Pour savoir s'il y a des doublons, tu peux faire un Ensuite pour écraser une valeur, un coup de sed :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -i "s#\(clef_de_recherche|\).*#\1$NEW_VAL#" tonfichierbdd.txt
    Pour la commande "del", il faut supprimer l'entrée sans produire aucun affichage, et si le nom de la clé est juste passé en argument sans sa valeur, la clé doit restée présente mais sans contenu. J'aimerais aussi dans la mesure du possible que vous m'aidiez à ce niveau.
    Pour supprimer une ligne, encore un coup de
    Pour supprimer juste la valeur, tu reprend la commande sed de remplacement, mais tu remplace la valeur par rien du tout pour l'effacer.

    Pour le select il s'agit de recupérer l'expression passer en paramètres et lister toutes les valeurs de clés comportant des caractère de l'expression; de la même manière qu'un grep; seulement je n'ai pas droit au grep. Je ne sais pas si un "sed" ferais l'affaire....
    Oui, avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -n '/expression/p' tonfichierbdd.txt
    Par contre ça affiche la ligne complete, alors il te faut un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    | awk -F "|" '{print $2}'

    Pour créer un fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    touch tonfichier
    ou echo "" > tonfichier
    pour l'écraser sans le supprimer:
    Bonne chance

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 549
    Points : 19 376
    Points
    19 376
    Par défaut
    Bonjour,

    si tu ne l'as pas encore lu, regarde Comment lire/parcourir un fichier

    ajoute des test, ou [ ] (c'est pareil)
    redirige tout vers un fichier temporaire, puis écrase l'original (après l'avoir sauvegardé)
    ...
    ?

    edit: ah, tu ne peux pas utiliser cp, et mv
    mais tu peux stocker le contenu du fichier avec les modifications dans une variable, et,
    quand toutes les lignes (mais on peut s'arrêter avant) ont été lues, écrire cette variable dans le fichier tout en l'écrasant (c'est peut-être plus facile ainsi)
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  4. #4
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2009
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2009
    Messages : 218
    Points : 130
    Points
    130
    Par défaut
    Merci infiniment pour vos reponses!

    Et justement il est possible d'utiliser des commandes certaines commandes externes, donc merci pour vos reponses.

    Par contre j'ai utilise getopts pour gerer mes options, ce qui est proscrit pour le projet. Auriez vous une alternative a me proposer pour gerer mes options courtes et longues (--)?

    Et aussi pour awk, ca fait partie des outils a ne pas utiliser.

    Merci encore pour collaboration

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 549
    Points : 19 376
    Points
    19 376
    Par défaut
    j'ai utilise getopts pour gerer mes options, ce qui est proscrit pour le projet. Auriez vous une alternative a me proposer pour gerer mes options courtes et longues (--)?
    à coup de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    while [ -n "$1" ]
    do case $1 in
          -o|--option) [ "${2::1}" != - ] && { shift; option="$1"; shift; }
          ;;
       ...
       esac
    done
    tu vois l'idée ?
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  6. #6
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2009
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2009
    Messages : 218
    Points : 130
    Points
    130
    Par défaut
    Ouais je vois!

    J'ai recuperer toute la ligne dans un tableau avant le parsing d'ailleur , du coup je fais tout a la main.

    merci; je reviens si j'ai un souci.


    Merci encore.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2006
    Messages : 107
    Points : 124
    Points
    124
    Par défaut
    Citation Envoyé par sympaval Voir le message
    Et aussi pour awk, ca fait partie des outils a ne pas utiliser.
    n
    Pour remplacer le grep, tu as la commande sed au dessus qui te donne les ligne matchant ton expression.
    Si tu n'a pas droit à awk pour récupérer la partie à droite du caractère "|", tu peux utiliser

  8. #8
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2009
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2009
    Messages : 218
    Points : 130
    Points
    130
    Par défaut
    Salut les gars;

    Merci vraiment pour votre aide. Je suis pas très loin d'avoir complètement terminé mon projet.
    Mais j'ai quelques petits souci surement de syntaxe, puisque le script est teste sur sh(mais en fait c'est interprété en bash derrière).

    En fait la substitution ne marche pas bien avec l'utilisation du sed comme indique par apesle. C'est a dire, quand je fais un sed -i "s#\($KEY|\).*#\1$VALUE#" $db_file (ou db_file est la variable contenant mon nom de fichier; VALUE est la variable contenant la valeur qui doit remplacer la valeur de la clé) alors, l'entrée est bien écrasée mais elle garde sa valeur, c'est dire la ligne du fichier ne change pas. Du coup cela a un impact sur la suppression quand j'essaye de supprimer juste la valeur sans supprimer la clé. Donc quand je fais un sed -i "s#\($KEY|\).*#\1#" $db_file, ca ne marche pas, car la clé reste avec sa valeur.

    Aussi j'ai un petit souci pour gérer les argument passe sous forme de variable(avec un "$" devant). Ceci indique que si on a '$ke1' en argument, la valeur de l'argument sera égale au contenu de la clé.

    Par exemple dans si dans mon fichier sh.db j'ai au moment de l'exécution de la commande (avec "=" comme séparateur dans ce cas):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    clef1=valeur1
    clef2 = valeur2
    si on fait un ./bdsh.sh put '$clef1' '$clef2'

    On doit avoir dans le fichier aura dans ton sh.db
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    clef1=valeur1
    clef2 = valeur2
    valeur1=valeur2
    Voila un peu le blocus pour le moment; surtout au niveau de l'écrasement de la valeur qui ne marche pas trop avec le sed pour le moment. J'arrive pas a faire marcher avec toutes les syntaxes que j'ai utilisées, la valeur n'est jamais remplacée par la nouvelle valeur


    Merci infiniment pour votre aide!

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2006
    Messages : 107
    Points : 124
    Points
    124
    Par défaut
    Bonsoir,

    Excuse moi, mais ton message n'est pas très clair. J'ai compris que tu n'arrive pas à changer la valeur d'une clef avec le sed. Pourtant la commande sed marche chez moi :

    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
     
    $ cat bdd.txt 
    tagada|tsoin
    piupiu|miaou
    pif|pafpoum
     
    $ NEW_VAL=wouff
    $ CLEF=piupiu
     
    $ sed -i "s#\($CLEF|\).*#\1$NEW_VAL#" bdd.txt
     
    $ cat bdd.txt 
    tagada|tsoin
    piupiu|wouff
    pif|pafpoum
    Pour supprimer la valeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $ sed -i "s#\($CLEF|\).*#\1#" bdd.txt
     
    $ cat bdd.txt 
    tagada|tsoin
    piupiu|
    pif|pafpoum
    La commande sed te retourne un erreur ?

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2006
    Messages : 107
    Points : 124
    Points
    124
    Par défaut
    Citation Envoyé par sympaval Voir le message
    si on fait un ./bdsh.sh put '$clef1' '$clef2'

    On doit avroir dans le fichier aura dans ton sh.db

    clef1=valeur1
    clef2 = valeur2
    valeur1=valeur2
    Il faut que tu regarde si tes arguments commencent avec un dollar. Si c'est le cas, tu l’enlève de la chaîne et tu remplace tes arguments par leur clef respective !

  11. #11
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2009
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2009
    Messages : 218
    Points : 130
    Points
    130
    Par défaut
    Oui Je m'excuse le pb se trouvait au niveau du formatage de ma bd.

    En fait moi je mettais un espace entre la clef, le | et la valeur c a d : $KEY | $VALUE;

    Du coup rien ne se passe et rien n'est afficher comme erreur.
    j'ai modifie le format en enlevant les espace et ca passe sans pb maintenant.

    Alors tu aurais une facon pratique a me proposer pour gerer le cas ou l'argument de la clef vaut le nom d'une clef (avec un "$" devant comme j'ai explique dans l'exemple de mon poste precedent?

    Merci encore.

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 549
    Points : 19 376
    Points
    19 376
    Par défaut
    Citation Envoyé par sympaval
    On doit avroir dans le fichier aura dans ton sh.db
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2006
    Messages : 107
    Points : 124
    Points
    124
    Par défaut
    Citation Envoyé par sympaval Voir le message
    Oui Je m'excuse le pb se trouvait au niveau du formatage de ma bd.

    En fait moi je mettais un espace entre la clef, le | et la valeur c a d : $KEY | $VALUE;

    Du coup rien ne se passe et rien n'est afficher comme erreur.
    j'ai modifie le format en enlevant les espace et ca passe sans pb maintenant.

    Alors tu aurais une facon pratique a me proposer pour gerer le cas ou l'argument de la clef vaut le nom d'une clef (avec un "$" devant comme j'ai explique dans l'exemple de mon poste precedent?

    Merci encore.
    Voici comment modifier ton paramètre reçu si son premier caractère est un dollar.
    Apres, il ne te reste plus qu'a appeler ta fonction qui permet de récupérer la valeur de la clef !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    PARAM='$clef'
    $ echo $PARAM
     $clef
    $ if [ "${PARAM:0:1}" == "$" ] ;  then PARAM="${PARAM#$}"; fi
    $ echo $PARAM
     clef

  14. #14
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2009
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2009
    Messages : 218
    Points : 130
    Points
    130
    Par défaut
    Merci!

    j'ai rencontre un autre souci avec le sed dans la subtutition avec le caractere "\"

    Voici ce que je tente de faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (ngonta_e@pc-NETWORKING=yes 1313)./test.sh put val5 'lol\9'
    En effet ceci est sense remplacer la valeur de la cle val5 par "lol\9" si la cle existe , si non entrer la nouvelle cle a la fin du fichier.

    mais voici l'erreur renvoyer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed: -e expression #1, char 22: invalid reference \9 on `s' command's RHS
    Quand je met 'lol/9' a la place ou quand l'entree n'existe pas, tout se passe bien.

    As-tu une idee de comment gerer ce cas specifique?

    Merci une fois de plus.

  15. #15
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2009
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2009
    Messages : 218
    Points : 130
    Points
    130
    Par défaut
    Excuez moi vraiment mais je reviens encore.

    En fait un autre souci.
    En fait pour le select, je ne dois pas afficher tous les champs valeur des ligne matchant mon expression, mais juste les valeure des cles dont les noms matchent mon expression.
    c a d, si j'ai dans mon fichier:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    key2|val1
    key1|val1
    val1|tata
    et que je fait un slect "val", ca doit m'afficher juste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    tata, et non 
    val1
    val1
    tata
    comme c'est le cas avec ces deux techniques que j'ai utilisees:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -n "/$EXPR/p" $db_file | cut -d "|" -f 2
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grep "$EXPR" $db_file | cut -d "|" -f 2
    Coment matcher juste le nom de la cle et ensuite afficher la valeur?

    Merci.

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 549
    Points : 19 376
    Points
    19 376
    Par défaut
    bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    expr=val
    sed -n '/^'"$expr"'/s/.*|\(.*\)/\1/p' fichier.db
    tata
    sed retient ce qui est entre \( \), et l'affiche dans \1.

    c'est pour ça que tu obtiens l'erreur
    sed: -e expression #1, char 22: invalid reference \9 on `s' command's RHS
    dans ton message précédent : sed croit qu'il doit afficher ce qui est entre les neuvièmes \( \), mais il n'y en a pas.

    Il faut vérifier que tes expressions ne contiennent pas des caractères spéciaux pour sed, et les protéger avec un \ supplémentaire.

    J'en vois trois : le délimiteur choisi, \, &...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "$var" | sed 's/[\&\/]/\\&/g'
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  17. #17
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2009
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2009
    Messages : 218
    Points : 130
    Points
    130
    Par défaut
    Merci pour ta reponse!

    Du coup j'ai egalement trouve le moyen de faire les bon match sur les nom de cle avant pour substutition; j'avoue que j'ai realise a partir de vos indication, un tres gros boulot.

    mais a propos de la protection du sed contre les caracteres speciaux, je n'ai pas bien compris tes recoomandations. Peux-tu etre un peu plus explicite a partir de cet example de mon script?
    sed -i "s#\($KEY|\).*#\1$VALUE#" $db_file; Comment proteger les caracteres speciaux dans ce cas? (Il faut remplacer ce qui est a droite du "|" apres $KEY par $VALUE, sans rien afficher bien sur!)

    Merci infiniment une fois de plus, le projet comporte tellement de contrainte, mais en meme je les ai presque toutes couvertes deja, et ce grace a vous en plus de certains secrets du script shel qui se sont reveles a moi.

    Merci.

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 549
    Points : 19 376
    Points
    19 376
    Par défaut
    utilise une autre variable, tout simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Key='val5'
    Value='lol\9'
    sedValue=$(echo "$Value" | sed 's/[\&\/]/\\&/g')
    # en bash, on ferait
    # sedValue="${Value//\\/\\\\}"
    # sedValue="${sedValue//\&/\\&}"
    sed -i "s#\($Key|\).*#\1$sedValue#" $db_file
    c'est plus clair ?

    et, ne mets pas le nom des variables tout en majuscules; ça évitera des conflits avec des variables d'environnements, qui porteraient le même nom, et qui elles sont toujours en majuscules.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  19. #19
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2009
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2009
    Messages : 218
    Points : 130
    Points
    130
    Par défaut
    Ok!
    Bien note.

    Et ceci protege carement tous les caracteres speciaux contenus dans la chaine, sans affecter la chaine si elle n'en contient pas? Car c'est un programme qui effectura ensuite des unitaires avec plusieurs combinaisons de commandes et d'argument possible.

    Merci encore!

  20. #20
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2009
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2009
    Messages : 218
    Points : 130
    Points
    130
    Par défaut
    Ca ne marche toujours pas; toujours la meme erreur pour la meme commande.

    J'ai esayer les deux syntaxe pour sedValue que tu m'as donnees!

    Merci

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 26
    Dernier message: 19/08/2015, 16h38
  2. Réponses: 1
    Dernier message: 10/01/2014, 09h09
  3. Créer une base de donnée avec un script
    Par roudani dans le forum Administration
    Réponses: 5
    Dernier message: 21/09/2011, 10h11
  4. [AC-2003] gérer une base de données avec des codes barres
    Par franklin59 dans le forum Modélisation
    Réponses: 1
    Dernier message: 09/12/2009, 15h21
  5. Réponses: 2
    Dernier message: 09/11/2009, 23h34

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