The UNIX and Linux Forums  

Go Back   Les systèmes UNIX et Linux Forums > Top Forums > De programmation et de script Shell
.
google unix.com



De programmation et de script Shell Posez vos questions à propos de KSH, CSH, SH, BASH, PERL, PHP, SED, awk et d'autres scripts shell et les langages de script shell ici.

Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
Fil Thread Starter Forum Réponses Last Post
Erreur Perl dirdamalah De programmation et de script Shell 3 06-21-2008 06:32 PM
Perl, l'impression d'une chaîne de caractères dans les colonnes doubleminus UNIX pour les nuls Questions et réponses 5 05-21-2008 10:41 PM
Erreur PERL Asteroid High Level Programming 3 04-25-2008 02:15 AM
l'impression d'une ligne vide dans un fichier (perl) kfad De programmation et de script Shell 3 05-07-2005 04:10 AM
Message d'erreur d'impression de Windows sur le port 515 pauls SUN Solaris 0 12-23-2004 09:51 AM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Recherche sur ce Thread Rate Thread Modes d'affichage
  #1 (permalink)  
Old 02-11-2009
ccsaviour ccsaviour is offline
Registered User
  
 

Date d'inscription: février 2009
Messages: 2
Perl erreur d'impression

Scripting Experts Salut, je suis nouvelle dans l'abeille perl, Et d'essayer d'écrire un script qui doit imprimer la disponibilité d'espace libre sur le disque C et E de lecteurs. S'il vous plaît conseils.

Voici l'extrait de script et les résultats escomptés:


#! / usr / bin /perl
use CGI qw /: html3: standard /;
spaceuselog $ \u003d "E: \ \ admin \ \ VOBSpaceUsage \ \ vobspaceusage.log.txt";
$ rapport \u003d "E: \ \ admin \ \ VOBSpaceUsage \ \ vobspaceusage.html";
open (LOG, "> $ rapport") | | die "ERROR écrit logfile logfile $!";
$ datetime \u003d localtime ();
$ count \u003d 0;
vob $ \u003d "";
$ vobsize \u003d 0;
totalvobsize $ + \u003d 0;
vd $ \u003d "";
$ sum \u003d 0;

# @ ct \u003d `VOBs lsvob-s-blrcc1 d'accueil»;
@ VOBs \u003d ( "\ \ scm_blr_amor","\ \ scm_blr_projects","\ \ scm_blr_misc","\ \ blr_mobile_projects","\ \ blr_mobile_test");
if ($ ENV (OS) \u003d ~ m / Windows /)
(
$ store \u003d $ ENV () SystemDrive;
open (VSU, "> $ rapport") or die "Impossible d'ouvrir: $! \ n";
open (VS, ">> $ rapport") or die "Impossible d'ouvrir: $! \ n";
$ ct \u003d "ClearTool";
)
autre
(
open (VSU, "> E: \ \ admin \ \ VOBSpaceUsage \ \ vobspaceusage.html") or die "Impossible d'ouvrir: $! \ n";
$ ct \u003d "C: \ \ Program Files \ \ Rational \ ClearCase \ \ bin \ \ cleartool.exe";
)
push (@ VSU, start_html ( «VLB Space Usage Report"), "\ n");
push (@ VSU, "<p> <b> VOB complété avec succès des processus de sauvegarde sur serveur de backup: <font color\u003dblue> BLRSTG01 </ font color> </ b>");
push (@ VSU, "Le <p> VOBs sont sauvegardées et disponibles à la location: \ \ blrstg01 \ Clearcase \ Backups dossier. </ p> ");
push (@ VSU, "\ n <td width\u003dauto align\u003dcenter> \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d \u003d \ n ");
push (@ VSU, "<p> <b> VOB Taille État sur VOB Server: <font color\u003dblue> BLRCC1 </ font color> </ b> </ p>");
push (@ VSU, "<table border\u003d1 width\u003dauto> \ n");
push (@ VSU, "<tr> \ n");
push (@ VSU, "<td width\u003dauto align\u003dcenter> <b> VoB Nom </ b> </ td> \ n");
push (@ VSU, "<td width\u003dauto align\u003dcenter> <b> Taille en Mb </ b> </ td> \ n");
push (@ VSU, "<td width\u003dauto align\u003dcenter> <b> Taille en Go </ b> </ td> \ n");
push (@ VSU, "</ tr> \ n");
push (@ vs, "</ table>");

foreach $ vob (@ VOBs)
(
\u003d $ $ vobname vob;
chomp ($ vobname);
push (@ VSU, "<tr> \ n");
push (@ VSU, "<td width\u003dauto align\u003dleft> $ vobname </ td> \ n");
vbpath @ ct \u003d `$ lsvob vob»;
foreach $ path (@ vbpath)
(
# Print "\ n $ path";
$ path \u003d ~ s / \ * / /;
$ path \u003d ~ s / \ s / /;
# Print "\ n $ path";
if ($ path \u003d ~ / \ s (\ \ \ \ [A-Za-z \ \ a-z0-9 \ _ \. \ \ ]*)/)
(
# print "\ nVOBPATH -> $ 1 \ n";
$ cdft \u003d "$ 1 \ \ c \ \ cdft";
# print LOG "\ t $ cdft";
$ ddft \u003d "$ 1 \ \ d \ \ ddft";
# print LOG "\ t $ ddft";
$ db \u003d "$ 1 \ \ db";
# print LOG "\ t $ db";
$ sdft \u003d "$ 1 \ \ s \ \ sdft";
# print "\ n Pool Source ---> $ sdft";
vobpath $ \u003d $ 1;
# print "\ nVOBPath >>>>>>>$ vobpath";
)
)
@ totspace \u003d `diruse / m $ vobpath»;
@ a \u003d split ( "", $ totspace [-1]);
totalvobsize $ \u003d $ a [0];
# Print LOG "\ t \ t $ totalvobsize";
push (@ VSU, "<td width\u003dauto align\u003dcenter> $ totalvobsize </ td> \ n");
totalGBsize $ \u003d ($ totalvobsize / 1024);
# Print LOG "\ t \ t $ totalGBsize";
push (@ VSU, "<td width\u003dauto align\u003dcenter> $ totalGBsize </ td> \ n");

)
# push (@ vs, "Disk Usage <p> de <b> C </ b> Drive </ p> \ n");

# push (@ vs, "Disk Usage <p> de <b> E </ b> Drive (VOBs de stockage inclus) </ p> \ n");
# foreach (@ msg)
# (
# Print $ _;
#)
foreach (@ VSU)
(
print LOG;
)
# push (@ VSU, <table>);
foreach (@ vs)
(
print LOG;
print RLOG;
)
open (RLOG, "<E: \ \ Backups \ \ log \ \ rlog.txt");
@ rlog \u003d <RLOG>;
for (@ rlog) (
# Print if / Disk Usage / .. 0
push (@ du, $ _) si / Disk Usage / .. 0
)
$ vu \u003d 1;
foreach $ line (@ du)
(
# @ New \u003d split (/ \ s /,$_);
chomp ($ line);
# Print "\ n $ ligne";
if (($ line \u003d ~ / ^ [0-9] * /) & & ($ line \u003d ~ / free $ /))
(
@ val \u003d split (/ \ s /, $ line);
$ new \u003d $ val [0];
$ new \u003d sprintf "% .2 f", $ new;
# Print "\ nI am traitement d'informations sur lecteur C, la valeur de la variable est de nouveau";
if ($ new <100,00)
(
print "\ nLa BLRCC1 espace libre sur le lecteur C est inférieur à 100 Go, S'il vous plaît Upgrade / Libre de l'espace sur le disque";
)
# Else
# (
print "\ nLa espace libre sur le disque C est BLRCC1 $ new";
#)
$ val [0] \u003d 0;
$ vu \u003d 0;
)
$ vu \u003d 2;
# Print "\ nLooped: $ vu \ n";
if (($ line \u003d ~ / ^ [0-9] * /) & & ($ line \u003d ~ / free $ /) & & ($ vu \u003d\u003d 2))
(
@ val \u003d split (/ \ s /, $ line);
Raghu $ \u003d $ val [0];
# Print "\ nValue est de $ val [0] \ n";
Raghu $ \u003d sprintf "% .2 f", $ Raghu;
# Print "\ nI am traitement E lecteur d'informations, la valeur de la variable est $ Raghu»;
if ($ Raghu <100,00)
(
print "\ nLa BLRCC1 espace libre sur le lecteur E est inférieur à 100 Go, S'il vous plaît Upgrade / Libre de l'espace sur le disque";
)
# Else
# (
print "\ nLa espace libre sur le disque dur est BLRCC1 E Raghu $";
#)
)
print LOG "$ ligne <p> </ p>";
push (@ vs, "<p> $ ligne </ p> \ n");
)
près RLOG;
près LOG;
près VS;
VSU étroite;

À l'heure actuelle, je suis sortie comme illustré ci-dessous:

L'espace disponible sur le disque dur est BLRCC1 C 103,82
L'espace disponible sur le disque dur est BLRCC1 E 103,82
L'espace disponible sur le disque dur est BLRCC1 C 145,17
L'espace disponible sur le disque dur est BLRCC1 E 145,17

Résultats attendus:

L'espace disponible sur le disque dur est BLRCC1 C 103,82
L'espace disponible sur le disque dur est BLRCC1 E 145,17
  #2 (permalink)  
Old 02-11-2009
JerryHone JerryHone is offline
Registered User
  
 

Join Date: Nov 2006
Lieu: Royaume-Uni
Messages: 178
Votre sortie est à l'intérieur du "foreach $ line (@ du)" boucle du @ si a deux éléments, vous obtenez la sortie à deux reprises.

HTH

Jerry
  #3 (permalink)  
Old 02-12-2009
KevinADC KevinADC is offline Forum Advisor  
Registered User
  
 

Join Date: Jan 2008
Messages: 731
La prochaine fois, utilisez les balises du code et après formatage du code. Essayer de lire que beaucoup unformatted code est trop difficile. Je pense que Jerry a repéré le problème cependant.
  #4 (permalink)  
Old 02-12-2009
ccsaviour ccsaviour is offline
Registered User
  
 

Date d'inscription: février 2009
Messages: 2
Perl erreur d'impression

Salut Kelvin et Jerry,

Merci pour vos contributions. Je m'engage à respecter à l'avenir.

J'espère qu'il y aurait deux autres conditions et le drapeau (voir) sera vrai pour les deux cas et, par conséquent, il affiche deux fois à chaque boucle.

Merci encore,
ccsaviour
  #5 (permalink)  
Old 02-12-2009
KevinADC KevinADC is offline Forum Advisor  
Registered User
  
 

Join Date: Jan 2008
Messages: 731
Vous ne pouvez pas avoir deux autres conditions perl. Vous pouvez avoir:

if / elsif / else

avec le plus grand nombre "elsif" conditions nécessaires et le «reste» à la fin est facultative
Closed Thread

Bookmarks

Thread Tools Recherche sur ce Thread
Recherche sur ce Thread:

Recherche avancée
Modes d'affichage Rate this thread
Rate this thread:

Règles de messages
Tu mai pas de nouvelles discussions: nonoui
Tu mai pas envoyer des réponses:
Tu mai pas envoyer des pièces jointes
Tu mai pas modifier vos messages

BB code est Sur
Smilies sont Sur
[IMG] code est Sur
Le code HTML est Hors tension
Trackbacks sont Sur
Pingbacks sont Sur
Refbacks sont Sur




Toutes les heures sont au format GMT -4. Le temps est maintenant 10:56 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traductions Langue Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Les systèmes UNIX et Linux Forums Content Copyright © 1993-2009. Tous droits Reserved.Ad de gestion par RedTyger

Content Relevant URLs par vBSEO 3.2.0