OVH Cloud OVH Cloud

pb avec grep $var

1 réponse
Avatar
Gerard Breiner
Bonjour,

Tout d'abord voici le programme sur lequel je bute.

#!/usr/bin/perl -w

use strict;
my @dblist = `/usr/bin/mysql -e "SHOW DATABASES" -s | grep ^syslog`; #
liste les bases dont le nom commence pae syslog
my $dbname;
foreach $dbname (@dblist) {
my $pid_mysql;
my @listps = `ps -ef`;
grep ".$dbname.",@listps;
$pid_mysql = `ps -ef | grep -i "$dbname" | grep -v grep | awk '{print
$2}'`; # c'est ici que se situe le problème
}

Cette commande récupère le pid relatif au contenu de $dbname. Mais en fait,
grep analyse la variable $dbname et non son contenu si bien que le terme que
je recherche n'est pas trouvé et je récupère tous les pid au mieu de ceux
qui m'interresse.

Si un esprit éclairé venait à passer par là ......

Bien cordialement.

Gérard Breiner
Institut D'Astrophysique Spatiale

1 réponse

Avatar
Denis -esp2008-
Bonjour,

grep ".$dbname.",@listps;


A quoi sert cette ligne ?
S'il n'y a qu'un seul nom de processus contenant $dbname, on peut le
récupérer comme ça:
($pid_mysql) = grep /$dbname/,@listps;
# et éventuellement récupérer le pid en lui-même ensuite:
$pid_mysql = split /s+/, $pid_mysql;


Mais en suivant ce raisonnement la ligne suivant n'est qu'un simple print,
je ne suis pas sûr que c'était exactement cela la question.

Bonne chance,

--
Denis