The UNIX and Linux Forums  
Hola y bienvenida de los Estados Unidos a la UNIX y Linux Foros! Gracias por su visita y formar parte de nuestra comunidad global.

Go Back   El UNIX y Linux Foros > Arriba Foros > Programación de scripts de shell y
.
google unix.com



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
Script de awk en DOS y Linux se comporta de manera diferente: ( vidyak Windows y DOS: Temas y Debates 2 04-01-2009 11:07 AM
"$ variable" no está comportándose como una cadena en mi script yabhi_22 UNIX for Dummies Preguntas y Respuestas 3 02-06-2009 01:20 PM
Script comportamiento diferente en dos servidores mhssatya UNIX para usuarios avanzados y expertos 5 09-13-2006 02:28 PM
Script comportamiento diferente en Crontab .. newtoxinu Programación de scripts de shell y 4 10-01-2004 01:22 PM
Script comportamiento diferente en Crontab .. newtoxinu UNIX para usuarios avanzados y expertos 1 09-30-2004 04:00 PM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback vínculo Herramientas de hilo Buscar en este Hilo Tasa de Hilo Modos de visualización
  #1 (Enlace permanente)  
Old 04-22-2009
lavascript lavascript is offline
Usuario Registrado
  
 

Fecha: abril 2009
Puestos: 47
Thumbs down ¿Por qué es una variable de comportamiento diferente en ksh guión.

Chicos tengo un comportamiento extraño con el comando de salida se guarda en una variable en lugar de un archivo tmp.

1. Me chupan comando en una variable de salida

Ejemplo de comando de salida

Código:
# cleanstats

DRIVE INFO:
----------

Drv    Type      Mount Time  Frequency   Last Cleaned         Comment
***    ****      **********  *********   ****************     *******
  0    hcart3*   51.9        0                N/A
  1    hcart3*   55.9        0                N/A
  2    dlt*      0.8         0                N/A
  3    dlt*      0.0         0                N/A
  4    dlt*      0.2         0                N/A
  5    dlt*      0.0         0                N/A

MEDIA INFO:
----------

media   media  robot  robot  robot  side/  optical  # mounts/      last
 ID     type   type     #    slot   face   partner  cleanings    mount time
-------------------------------------------------------------------------------
CLN206  DLT_CL NONE     -      -     -       -           0     12/26/2001 08:22
CLN207  DLT_CL NONE     -      -     -       -           0     03/10/2002 10:00
CLN205  DLT_CL NONE     -      -     -       -           0     08/18/2002 06:40
CLN703  DLT_CL NONE     -      -     -       -           0     03/29/2003 05:11
CLN701  DLT_CL NONE     -      -     -       -          20     00/00/0000 00:00
CLN635  DLT_CL NONE     -      -     -       -           0     11/21/2003 04:32
CLN219  DLT_CL NONE     -      -     -       -           0     07/13/2004 06:25
CLN636  DLT_CL NONE     -      -     -       -          14     01/22/2006 08:15
CLN211  DLT_CL TLD      1     21     -       -          12     10/31/2008 22:44
CLN209  DLT_CL NONE     -      -     -       -           0     12/13/2006 22:13
CLN210  DLT_CL NONE     -      -     -       -           0     10/19/2008 06:31
2. Luego de que la variable de impresión a la pantalla para su depuración y como se esperaba
3. Luego de impresión a una variable que awk declaración en un caso de prueba y no funciona como debería.
4. Si la salida es capturada en una tempfile awk y la misma declaración se usa, pero teniendo a partir de la entrada tmpfile entonces funciona.

A continuación se muestra un código de manera que no funciona y que hace. ¿Alguien puede arrojar alguna luz en cuanto a por qué?
Estoy, evidentemente, tratando de utilizar variables en lugar de tmpfiles de todo el mundo.
No puedo entender porque la declaración de impresión para la salida de depuración muestra como se esperaba.

Código:
#!/bin/ksh

....script contents, variable assignment blah blah....

# Suck clean stats to variable
CSTAT=$(cleanstats)

# Or put in tmpfile
cleanstats > ${TMPFILE}

print "CSTAT contains [${CSTAT}]"  #DBG

# Check tape exists in library with free cleanings
# If tape is in unit but with no cleanings OR
# If tape is NOT in unit (TLD), the string returned is empty thus matching -z test

# (section 1)
if [[ -z "$( print ${CSTAT} | nawk '$3 == "TLD" && $8 != "0" {print}' )" ]];then
      .... do stuff ....
fi

# Above doesnt work, but below does

# (section 2)
#if [[ -z "$( nawk '$3 == "TLD" && $8 != "0" {print}' < ${TMPFILE} )" ]];then
#      .... do stuff ...
#fi
Uso de la muestra por encima de la producción hará que la primera parte para igualar cuando no debe, sin embargo, la segunda sección las obras y tan sólo pasa por el si.

Cualquiera arrojar alguna luz sobre esto? La Federación se establece como nueva línea de serie.

¡Salud!

Última edición por lavascript; al 04-22-2009 09:23 AM..
  #2 (Enlace permanente)  
Old 04-22-2009
lavascript lavascript is offline
Usuario Registrado
  
 

Fecha: abril 2009
Puestos: 47
Red face

Curiosamente sólo el establecimiento de IFS para nada parece que se han fijado.

No estoy del todo seguro de por qué, pero se reunieron en torno a que el separador de campo.

He intentado hacer esto: --

Código:
oldIFS=$IFS
IFS="\n\r"

if [ ....blah

IFS=$oldIFS
. notado y funcionó correctamente, pero la salida de impresión de awk faltaba n y r.

A través de ensayo y error que encontré ajuste
Código:
IFS=""
hecho el trabajo.

Alguien sabe por qué?

¡salud!
Closed Thread

Marcadores

Herramientas de hilo Buscar en este Hilo
Buscar en este Hilo:

Búsqueda avanzada
Modos de visualización Vota a este hilo
Vota a este hilo:

Normas de envío
puede que no nuevo puesto de hilos
puede que no enviar respuestas
puede que no enviar archivos adjuntos
puede que no editar sus puestos

Código BB es Encendido
Emoticones son Encendido
[IMG] código Encendido
Código HTML es Apagado
Trackbacks son Encendido
Pingbacks son Encendido
Refbacks son Encendido




Todas las horas son GMT -4. La hora es 10:44 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traducciones de idiomas Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Estudios
El UNIX y Linux Foros Contenido Copyright © 1993-2009. Todos los derechos Reserved.Ad Gestión por RedTyger

Las direcciones URL de contenido vBSEO 3.2.0