![]() |
Hallo en welkom van de Verenigde Staten aan de UNIX en Linux Forum! Bedankt voor uw bezoek en Deelnemen aan onze wereldwijde gemeenschap.
|
|
google unix.com
|
|||||||
| Forums | Registreer | Forum Regels | Links | Albums | Veelgestelde vragen | Ledenlijst | Kalender | Zoeken | Today's Posts | Markeer forums als gelezen |
| 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 |
![]() |
|
|
LinkBack | Thread Tools | Zoeken in deze Thread | Rate Thread | Display Modes |
|
|
|
||||
|
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 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
Iedereen stal een licht op het? IFS is ingesteld als newline als standaard. Sante Laatst gewijzigd door lavascript; op 04.22.2009 09:23.. |
|
||||
|
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 Door middel van trial and error "Ik vond het instellen Code:
IFS="" Iedereen weet waarom? sante |
![]() |
| Bladwijzers |
| Thread Tools | Zoeken in deze Thread |
| Display Modes | Beoordeel deze draad |
|
|