The UNIX and Linux Forums  
Hallo en welkom van de Verenigde Staten aan de UNIX en Linux Forum! Bedankt voor uw bezoek en Deelnemen aan onze wereldwijde gemeenschap.

Go Back   De Unix-en Linux Forum > Top Forums > Programmeren en Shell Scripting
.
google unix.com



Programmeren en Shell Scripting Post vragen over KSH, CSH, SH, Bash, Perl, PHP, sed, awk en andere shell scripts en shell scripting talen hier.

Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
Draad Thread Starter Forum Antwoorden Last Post
Awk script in DOS en Linux gedraagt zich anders: ( vidyak Windows & DOS: Kwesties & Discussies 2 04-01-2009 11:07
"$ variabele" niet gedraagt als een string in mijn script yabhi_22 UNIX voor Dummies Questions & Answers 3 02-06-2009 01:20 PM
Script anders gedraagt op twee servers mhssatya UNIX for Advanced & Expert Gebruikers 5 09-13-2006 02:28 PM
Script gedraagt anders Crontab .. newtoxinu Programmeren en Shell Scripting 4 10-01-2004 01:22 PM
Script gedraagt anders Crontab .. newtoxinu UNIX for Advanced & Expert Gebruikers 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 Thread Tools Zoeken in deze Thread Rate Thread Display Modes
  #1 (permalink)  
Old 04-22-2009
lavascript lavascript is offline
Geregistreerde gebruiker
  
 

Join Date: april 2009
Posts: 47
Thumbs down Waarom is een variabele gedraagt anders ksh script.

Jongens ik heb vreemd gedrag met commando output wordt opgeslagen in een variabele in plaats van een tmp-bestand.

1. I suck commando output in een variabele

Voorbeeldopdrachtregel uitgang

Code:
# 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. Vervolgens heb ik print die variabele scherm voor het debuggen en zijn zoals verwacht
3. Vervolgens heb ik print dat variabele naar een awk verklaring in een test en als het niet werkt zoals het zou moeten.
4. Als de productie wordt gevangen in een tempfile en dezelfde awk verklaring wordt gebruikt, maar waarbij de input van de tmpfile dan wel werkt.

De onderstaande code toont een manier die niet werkt en een die dat doet. Kan iemand stal een licht over de vraag waarom?
Ik ben uiteraard probeert te gebruiken variabelen in plaats van tmpfiles overal.
Ik kan niet begrijpen omdat de print verklaring voor debug toont de output zoals verwacht.

Code:
#!/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
Gebruik van de voorbeelduitvoer bovenstaande leidt tot de eerste sectie aan als het niet mag, maar het tweede deel werken en net voorbij de als.

Iedereen stal een licht op het? IFS is ingesteld als newline als standaard.

Sante

Laatst gewijzigd door lavascript; op 04.22.2009 09:23..
  #2 (permalink)  
Old 04-22-2009
lavascript lavascript is offline
Geregistreerde gebruiker
  
 

Join Date: april 2009
Posts: 47
Red face

Gek genoeg net instelling IFS op niets lijkt te zijn hersteld.

Ik ben niet helemaal zeker waarom, maar het zou verzameld rond de velden te onderscheiden.

Ik heb geprobeerd dit te doen: --

Code:
oldIFS=$IFS
IFS="\n\r"

if [ ....blah

IFS=$oldIFS
. gemerkt en het werkte goed, maar de print output van awk ontbrak n en r's.

Door middel van trial and error "Ik vond het instellen
Code:
IFS=""
maakte het werk.

Iedereen weet waarom?

sante
Closed Thread

Bladwijzers

Thread Tools Zoeken in deze Thread
Zoeken in deze Thread:

Uitgebreid zoeken
Display Modes Beoordeel deze draad
Beoordeel deze draad:

Posting Regels
Jij mag niet Post Nieuwe threads
Jij mag niet na antwoorden
Jij mag niet post attachments
Jij mag niet bewerk uw berichten

BB code is Aan
Smilies zijn Aan
[IMG] code Aan
HTML-code is Uit
Trackbacks zijn Aan
Pingbacks zijn Aan
Refbacks zijn Aan




Alle tijden zijn GMT -4. Het is nu 02:13 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Vertalingen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
De Unix-en Linux Forums Copyright © 1993-2009. Alle rechten Reserved.Ad Beheer door RedTyger

Content Relevante URL's door vBSEO 3.2.0