![]() |
|
|
google unix.com
|
|||||||
| Foros | Registro | Reglas de los Foros | Enlaces | Álbumes | Preguntas más frecuentes | Lista de miembros | Calendario | Búsqueda | Puestos de hoy | Marcar Foros Como Leídos |
| Programación de scripts de shell y Plantear preguntas sobre KSH, CSH, SH, BASH, PERL, PHP, SED, AWK y otros scripts de shell y lenguajes de script de shell aquí. |
Más UNIX y Linux Foro Temas usted puede encontrar útiles
|
||||
| Hilo | Hilo para principiantes | Foro | Respuestas | Último mensaje |
| Perl Error | dirdamalah | Programación de scripts de shell y | 3 | 06-21-2008 06:32 PM |
| Perl, una cadena de impresión en columnas | doubleminus | UNIX for Dummies Preguntas y Respuestas | 5 | 05-21-2008 10:41 PM |
| Error PERL | Asteroide | Programación de Alto Nivel | 3 | 04-25-2008 02:15 AM |
| impresión de una línea vacía en un archivo (perl) | kfad | Programación de scripts de shell y | 3 | 05-07-2005 04:10 AM |
| Mensaje de error de impresión de Windows en el puerto 515 | pauls | Sun Solaris | 0 | 12-23-2004 09:51 AM |
![]() |
|
|
Linkback vínculo | Herramientas de hilo | Buscar en este Hilo | Tasa de Hilo | Modos de visualización |
|
|
|
||||
|
Perl error de impresión
Hola Gurús scripting, soy nueva en abeja perl, Y tratando de escribir un script que debe imprimir la disponibilidad de espacio libre en el disco C y E de las unidades. Por favor, asesoramiento.
Aquí está el fragmento de secuencia de comandos y los resultados esperados: #! / usr / bin /perl use CGI qw /: html3: estándar /; $ spaceuselog \u003d "C: \ \ admin \ \ VOBSpaceUsage \ \ vobspaceusage.log.txt"; $ informe \u003d "C: \ \ admin \ \ VOBSpaceUsage \ \ vobspaceusage.html"; abierto (log, "> $ informe") | | die "Error al escribir en el 'log' $ log"; $ datetime \u003d localtime (); $ count \u003d 0; vob $ \u003d ""; $ vobsize \u003d 0; $ totalvobsize + \u003d 0; vd $ \u003d ""; $ suma \u003d 0; # @ vobs \u003d `ctar lsvob-s-blrcc1 de acogida»; @ vobs \u003d ( "\ \ scm_blr_amor","\ \ scm_blr_projects","\ \ scm_blr_misc","\ \ blr_mobile_projects","\ \ blr_mobile_test"); if ($ ENV (OS) \u003d ~ m / Windows /) ( $ guardar \u003d $ ENV SystemDrive (); abierto (VSU, "> $ informe") or die "No se puede abrir: $ \ n"; abierto (VS, ">> $ informe") or die "No se puede abrir: $ \ n"; $ ct \u003d "cleartool"; ) algo más ( abierto (VSU, "> E: \ \ admin \ \ VOBSpaceUsage \ \ vobspaceusage.html") or die "No se puede abrir: $ \ n"; $ ct \u003d "C: \ \ Archivos de programa \ \ racional \ \ ClearCase \ \ bin \ \ cleartool.exe"; ) Pulsar (@ vsu, start_html ( "Vob uso del espacio de Informe"), "\ n"); Pulsar (@ vsu ", <p> VOB proceso de copia de seguridad se ha completado con éxito el servidor de copia de seguridad: <font color\u003d BLRSTG01 </ font color> </ b>"); Pulsar (@ vsu, "El <p> VOBs son una copia de seguridad y disponible en la ubicación: \ \ blrstg01 \ ClearCase \ Copias de seguridad carpeta. </ p> "); Pulsar (@ 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 "); Pulsar (@ vsu ", <p> VOB Tamaño Estado en VOB Servidor: <font color\u003d BLRCC1 </ font color> </ b> </ p>"); Pulsar (@ vsu, "<table border\u003d1 width\u003dauto> \ n"); Pulsar (@ vsu ", <tr> \ n"); Pulsar (@ vsu ", <td width\u003dauto align\u003dcenter> <b> Vob Nombre </ b> </ td> \ n"); Pulsar (@ vsu ", <td width\u003dauto align\u003dcenter> <b> Tamaño en Mb </ b> </ td> \ n"); Pulsar (@ vsu ", <td width\u003dauto align\u003dcenter> <b> Tamaño en Gb </ b> </ td> \ n"); Pulsar (@ vsu, "</ tr> \ n"); Pulsar (@ vs, "</ table>"); foreach $ vob (@ vobs) ( \u003d $ $ vobname vob; chomp ($ vobname); Pulsar (@ vsu ", <tr> \ n"); Pulsar (@ vsu ", <td width\u003dauto ALIGN\u003dLEFT> $ vobname </ td> \ n"); @ vbpath \u003d `ctar lsvob $ vob»; foreach $ trayectoria (@ vbpath) ( # Print "\ n $ ruta"; $ path \u003d ~ s / \ * / /; $ path \u003d ~ s / \ s / /; # Print "\ n $ ruta"; if ($ path \u003d ~ / \ s (\ \ \ \ [A-Za-z \ \ a-z0-9 \ _ \. \ \ ]*)/) ( # print "\ nVOBPATH -> $ 1 \ n"; $ cdft \u003d "$ 1 \ \ c \ \ cdft"; REGISTRO # imprime "\ t $ cdft"; $ ddft \u003d "$ 1 \ \ d \ \ ddft"; REGISTRO # imprime "\ t $ ddft"; $ db \u003d "$ 1 \ \ db"; REGISTRO # imprime "\ t $ db"; $ sdft \u003d "$ 1 \ \ s \ \ sdft"; # print "\ n Fuente Piscina ---> $ sdft"; vobpath $ \u003d $ 1; # print "\ nVOBPath >>>>>>>$ vobpath"; ) ) @ totspace \u003d `diruse / m $ vobpath»; @ a \u003d split ( "", $ totspace [-1]); totalvobsize $ \u003d $ a [0]; REGISTRO # imprime "\ t \ t $ totalvobsize"; Pulsar (@ vsu ", <td width\u003dauto align\u003dcenter> $ totalvobsize </ td> \ n"); totalGBsize \u003d $ ($ totalvobsize / 1024); REGISTRO # imprime "\ t \ t $ totalGBsize"; Pulsar (@ vsu ", <td width\u003dauto align\u003dcenter> $ totalGBsize </ td> \ n"); ) # empuje (@ vs, "Uso del disco de <p> <b> C </ b> Unidad </ p> \ n"); # empuje (@ vs, "Uso del disco de <p> <b> E </ b> Drive (Almacenamiento VOBs incluido) </ p> \ n"); # foreach (@ msg) # ( # Print $ _; #) foreach (@ vsu) ( Imprimir registro; ) # empuje (@ vsu, <table>); foreach (@ vs) ( Imprimir registro; rlog de impresión; ) abierto (rlog, "<E: \ \ Copias de seguridad \ \ log \ \ rlog.txt"); @ \u003d rlog <RLOG>; para (rlog @) ( # Mostrar si / Uso de Disco / .. 0 Pulsar (@ du, $ _) si / Uso de Disco / .. 0 ) visto \u003d $ 1; foreach $ linea (@ du) ( # @ Nueva \u003d split (/ \ s /,$_); chomp ($ linea); # Print "\ n $ linea"; if (($ linea \u003d ~ / ^ [0-9] * /) & & ($ linea \u003d ~ / libre $ /)) ( @ val \u003d split (/ \ s /, $ linea); $ nuevo \u003d $ val [0]; $ nuevo \u003d sprintf "% .2 f", $ nuevo; # Print "\ NI am unidad de procesamiento de información C, El valor de la nueva variable es de $ nuevo"; if ($ nuevo <100,00) ( print "\ nLa BLRCC1 espacio libre en la unidad C es inferior a la de 100 GB, por favor, actualice / Libera espacio en el disco"; ) # Else # ( print "\ nLa el espacio libre disponible en la unidad C BLRCC1 nuevo es de $"; #) $ val [0] \u003d 0; $ visto \u003d 0; ) $ visto \u003d 2; # Print "\ nLooped: $ visto \ n"; if (($ linea \u003d ~ / ^ [0-9] * /) & & ($ linea \u003d ~ / libre $ /) & & ($ visto \u003d\u003d 2)) ( @ val \u003d split (/ \ s /, $ linea); Raghu $ \u003d $ val [0]; # Print "\ nValue es de $ val [0] \ n"; Raghu $ \u003d sprintf "% .2 f", $ Raghu; # Print "\ NI am E unidad de procesamiento de información, el valor de la nueva variable es de $ Raghu"; if ($ Raghu <100,00) ( print "\ nLa Espacio libre en BLRCC1 E es inferior a la unidad de 100 GB, por favor, actualice / Libera espacio en el disco"; ) # Else # ( print "\ nLa el espacio libre disponible en BLRCC1 E unidad es de $ Raghu"; #) ) Imprimir registro "<p> $ linea </ p>"; Pulsar (@ vs ", <p> $ linea </ p> \ n"); ) rlog estrecha; REGISTRO estrecha; VS estrecha; VSU estrecha; Ahora tengo la salida como se muestra a continuación: El espacio libre disponible en la unidad C BLRCC1 es 103,82 El espacio libre disponible en disco es BLRCC1 E 103,82 El espacio libre disponible en la unidad C BLRCC1 es 145,17 El espacio libre disponible en disco es BLRCC1 E 145,17 Los resultados esperados: El espacio libre disponible en la unidad C BLRCC1 es 103,82 El espacio libre disponible en disco es BLRCC1 E 145,17 |
|
||||
|
Su salida está dentro de la "foreach $ linea (@ du)" bucle, así que si @ du tiene dos elementos, usted obtendrá la salida de dos veces.
HTH Jerry |
|
||||
|
La próxima vez que utilice el código de formato de etiquetas y código de puesto. Tratando de leer el código sin que mucho es demasiado difícil. Creo que Jerry ha descubierto el problema, aunque.
|
|
||||
|
Perl de error de impresión
Hola Kelvin y Jerry,
Gracias por tus aportaciones. Voy a cumplir en el futuro. Espero que sea de dos más y las condiciones de la bandera ($ visto) será válido para los casos y por lo que se imprime dos veces en cada bucle. Gracias de nuevo, ccsaviour |
|
||||
|
No se pueden tener dos más en las condiciones perl. Usted puede tener:
si / elsif / else con el mayor número de 'elsif' como condiciones necesarias y el 'otro' en la final es opcional |
![]() |
| Marcadores |
| Herramientas de hilo | Buscar en este Hilo |
| Modos de visualización | Vota a este hilo |
|
|