The UNIX and Linux Forums  
Hallo und herzlich Willkommen aus den Vereinigten Staaten, die UNIX-und Linux-Foren! Vielen Dank für Ihren Besuch und die Teilnahme an unserem Global Community.

Go Back   Die UNIX-und Linux-Foren > Top Foren > Shell Programmierung und Scripting
.
Google unix.com



Shell Programmierung und Scripting Post Fragen zu ksh, csh, sh, bash, Perl, PHP, sed, awk und anderen Shell-Skripte und Shell-Scripting-Sprachen hier.

Mehr UNIX-und Linux-Forum Themen Vielleicht finden Sie hilfreiche
Faden Thread Starter Forum Antworten Last Post
Perl-Fehler dirdamalah Shell Programmierung und Scripting 3 06-21-2008 05:32 PM
Perl-, Druck einer Zeichenkette in Spalten doubleminus UNIX for Dummies Questions & Answers 5 05-21-2008 09:41 PM
PERL Fehler Asteroid High-Level-Programmierung 3 04-25-2008 01:15 AM
Druck eine leere Zeile in einer Datei (Perl) kfad Shell Programmierung und Scripting 3 05-07-2005 03:10 AM
Fehlermeldung Druck auf Windows auf 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 Suche diesen Thread Rate Thread Anzeige-Modi
  #1 (permalink)  
Old 02-11-2009
ccsaviour ccsaviour is offline
Registrierte Nutzer
  
 

Join Date: Feb 2009
Beiträge: 2
Perl-Fehler

Hi Scripting Gurus, ich bin neu in der Biene perl, Und zu versuchen, ein Skript schreiben, die Druck der freie Speicherplatz Verfügbarkeit von C-und E-Laufwerke. Bitte Beratung.

Hier ist das Skript-Snippet und erwartete Ausgabe:


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

# @ vobs \u003d "ct lsvob-s-Host blrcc1";
@ 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 (Systemlaufwerk);
open (VSU, "> $-Bericht") or die "Can't open: $! \ n";
open (VS, ">> $-Bericht") or die "Can't open: $! \ n";
$ ct \u003d "cleartool";
)
sonst
(
open (VSU, "> E: \ \ admin \ \ VOBSpaceUsage \ \ vobspaceusage.html") or die "Can't open: $! \ n";
$ ct \u003d "C: \ \ Program Files \ \ Rational \ \ ClearCase \ \ bin \ \ cleartool.exe";
)
push (@ VSU, start_html ( "Vob Space Usage Report"), "\ n");
push (@ VSU, "<p> VOB Backup-Prozess erfolgreich auf Backup-Server: <font color\u003dblue> BLRSTG01 </ font color> </ b>");
push (@ VSU, "<p> Die VOBs sind gesicherte und auf die Lage: \ \ blrstg01 \ Clearcase \ Backups Ordner. </ p> ");
push (@ VSU, "\ n width\u003dauto <td 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> VOB Größe Stand 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 align\u003dcenter> width\u003dauto <b> Vob Name </ b> </ td> \ n");
push (@ VSU, "<td align\u003dcenter> width\u003dauto <b> Größe in MB </ b> </ td> \ n");
push (@ VSU, "<td align\u003dcenter> width\u003dauto <b> Größe in Gb </ b> </ td> \ n");
push (@ VSU, "</ tr> \ n");
push (@ VS, "</ table>");

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

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

# push (@ VS, "<p> Disk Usage von <b> E </ b> Drive (Storage VOBs enthalten) </ p> \ n");
# foreach (@ msg)
# (
# Print $ _;
#)
foreach (@ VSU)
(
print LOG;
)
# push (@ VSU, <table>);
foreach (@ VS)
(
print LOG;
Drucken RLOG;
)
open (RLOG, "<E: \ \ Backups \ \ log \ \ rlog.txt");
@ rlog \u003d <RLOG>;
for (@ rlog) (
# Print if / Disk Usage / .. 0
push (@ du, $ _) if / Disk Usage / .. 0
)
$ gesehen \u003d 1;
foreach $ line (@ du)
(
# @ New \u003d split (/ \ s /,$_);
chomp ($ line);
# Print "\ n $ line";
if (($ line \u003d ~ / ^ [0-9] * /) & & ($ line \u003d ~ / freie $ /))
(
@ val \u003d split (/ \ s /, $ line);
$ new \u003d $ val [0];
$ new \u003d sprintf "% .2 f", $ new;
# Print "\ nI am Verarbeitung Laufwerk C Infos, Der Wert der neuen Variable $ new";
if ($ new <100,00)
(
print "\ nDie freien Speicherplatz auf Laufwerk C BLRCC1 ist weniger als 100 GB, Bitte Upgrade / Freier Speicherplatz auf der Festplatte";
)
# Else
# (
print "\ nDie verfügbaren freien Speicherplatz auf Laufwerk C ist BLRCC1 $ new";
#)
$ val [0] \u003d 0;
$ gesehen \u003d 0;
)
$ gesehen \u003d 2;
# Print "\ nLooped: $ gesehen \ n";
if (($ line \u003d ~ / ^ [0-9] * /) & & ($ line \u003d ~ / freie $ /) & & ($ gesehen \u003d\u003d 2))
(
@ val \u003d split (/ \ s /, $ line);
Raghu $ \u003d $ val [0];
# Print "\ nValue ist $ val [0] \ n";
$ Raghu \u003d sprintf "% .2 f", $ Raghu;
# Print "\ nI am Verarbeitung Info E-Laufwerk, wird der Wert der neuen Variable $ Raghu";
if ($ Raghu <100,00)
(
print "\ nDie freien Speicherplatz auf BLRCC1 E-Laufwerk ist weniger als 100 GB, Bitte Upgrade / Freier Speicherplatz auf der Festplatte";
)
# Else
# (
print "\ nDie verfügbaren freien Speicherplatz auf Laufwerk E BLRCC1 $ Raghu";
#)
)
print LOG "<p> $ line </ p>";
push (@ VS, "<p> $ line </ p> \ n");
)
Schließen RLOG;
Schließen LOG;
Schließen VS;
VSU schließen;

Im Moment bekomme ich die Ausgabe wie folgt:

Die verfügbaren freien Speicherplatz auf Laufwerk C BLRCC1 ist 103,82
Die verfügbaren freien Speicherplatz auf Laufwerk wird BLRCC1 E 103,82
Die verfügbaren freien Speicherplatz auf Laufwerk C BLRCC1 ist 145,17
Die verfügbaren freien Speicherplatz auf Laufwerk wird BLRCC1 E 145,17

Erwartete Ausgabe:

Die verfügbaren freien Speicherplatz auf Laufwerk C BLRCC1 ist 103,82
Die verfügbaren freien Speicherplatz auf Laufwerk wird BLRCC1 E 145,17
  #2 (permalink)  
Old 02-11-2009
JerryHone JerryHone is offline
Registrierte Nutzer
  
 

Join Date: Nov 2006
Ort: UK
Beiträge: 178
Ihr Ausgang ist in der "foreach $ line (@ du)"-Schleife, so dass, wenn du @ hat zwei Elemente, erhalten Sie die Ausgabe zweimal.

HTH

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

Join Date: Jan 2008
Beiträge: 731
Nächstes Mal verwenden Sie den Code-Tags und-post-Code formatiert. Der Versuch zu lesen, dass viel Unformatiert Code ist zu schwierig. Ich denke, Jerry entdeckt hat das Problem aber.
  #4 (permalink)  
Old 02-12-2009
ccsaviour ccsaviour is offline
Registrierte Nutzer
  
 

Join Date: Feb 2009
Beiträge: 2
Perl-Fehlermeldungen

Hi Kelvin und Jerry,

Vielen Dank für Ihre Eingaben. Ich werde sich in Zukunft.

Ich hoffe, es sollte zwei anderen Bedingungen und die Flagge ($ gesehen) wird auch für die Fälle, und damit druckt er zweimal auf jeder Schleife.

Thanks again,
ccsaviour
  #5 (permalink)  
Old 02-12-2009
KevinADC KevinADC is offline Forum Advisor  
Registrierte Nutzer
  
 

Join Date: Jan 2008
Beiträge: 731
Sie können nicht zwei anderen Bedingungen in perl. Sie können:

if / elsif / else

mit so vielen "elsif" Bedingungen, wie sie benötigt werden und die "anderen" am Ende ist optional
Closed Thread

Lesezeichen

Thread Tools Suche diesen Thread
Suche diesen Thread:

Erweiterte Suche
Anzeige-Modi Rate this thread
Rate this thread:

Forumregeln
Du möglicherweise nicht neue Themen
Du möglicherweise nicht nach Antworten
Du möglicherweise nicht post-Anlagen
Du möglicherweise nicht bearbeiten Sie Ihre Beiträge

BB-Code ist Auf
Smilies sind Auf
[IMG] Code Auf
HTML-Code ist Aus
Trackbacks sind Auf
Pingbacks sind Auf
Refbacks sind Auf




Alle Zeiten sind GMT -4. Es ist jetzt 12:49 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Ltd. Sprachliche Übersetzungen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Die UNIX-und Linux-Foren Content © Copyright 1993-2009. Alle Rechte Reserved.Ad Management von RedTyger

Content Relevant URLs durch vBSEO 3.2.0