• # Re: probleme programation bash

    Posté par (site web personnel) . En réponse au journal probleme programation bash. Évalué à 3.

    Bon d'abord:
    echo -e \\n >> $TMP_FILE
    c'est un peu redondant, un simple echo >> $TMP_FILE sera amplement suffisant.

    Ensuite si j'ai bien compris la requete sql te renvoi des noms de fichiers contenant tes news ? (rq en passant l'interet d'une bdd
    c'est d'eviter de stocker des trucs a l'exterieur mais passonts).
    si ta commande te renvoi des noms avec espace comme tu le dit alors ton script va avoir besoin d'un gros dégraissage.


    Si tu veut pas te faire chier, utilise perl, c'set 10x plus adapté a ce que tu veut faire (Practical Extraction and Report Langage)
    avec un module sql en plus c'est encore plus simple:


    #!/usr/bin/perl -w

    use DBI;
    # note les champs peuvent etre initialiser via $ARGV[]
    my $database = "";
    my $hostname = "";
    my $port = "";

    my $dsn = "DBI:mysql:database=$database;host=$hostname;port=$port";

    my $user = "";
    my $password = "";
    my $dbh = DBI->connect($dsn, $user, $password);

    my $newsbase = "/tmp";

    $r = $dbh->prepare("SELECT row FROM foo WHERE bla");
    $r->execute();

    while (my ($title) = $r->fetchrow_array()) {
    if (open (NEWS, "<$newsbase/$title")) {
    $news = "";
    while () {
    chop;
    $news .= " ".$_;
    }
    close NEWS;
    write();
    }
    }

    format STDOUT_TOP =
    News Report
    .

    format STDOUT =
    ************************

    Titre: @<<<<<<<<<<<<<<<<
    $title,
    @*
    $news

    .


    tu peut aussi ouvrir un fichier et ecrire dedans (write(OUTFILE); ou print OUTFILE "";)

    enfin tu peut tout quoi.