The UNIX and Linux Forums  


Go Back   A UNIX és Linux Forums > Top Fórumok > Shell programozás és Scripting
.
google unix.com



Shell programozás és Scripting Post kérdések KSH, CSH, SH, Bash, Perl, PHP, SED, AWK ÉS EGYÉB shell szkriptek és shell script nyelvek itt.

Több, UNIX és Linux fórum témák Ön által talált Hasznos
Szál Thread Starter Fórum Válaszok Utolsó hozzászólás
Awk script-DOS és a Linux eltérően viselkedik: ( vidyak Windows és DOS: kérdések & Fórum 2 04-01-2009 12:07 PM
"$ változó" nem viselkedik, mint egy olyan karakterlánc in my script yabhi_22 A UNIX a dummies Kérdések és válaszok 3 02-06-2009 01:20 PM
Script eltérően viselkedik a két szerverek mhssatya A UNIX a fejlett és szakértői Felhasználók 5 09-13-2006 03:28 PM
Script viselkednek eltérően Crontab .. newtoxinu Shell programozás és Scripting 4 10-01-2004 02:22 PM
Script viselkednek eltérően Crontab .. newtoxinu A UNIX a fejlett és szakértői Felhasználók 1 09-30-2004 05: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 Téma eszközök Keresés a téma Rate Thread Megjelenítési módok
  #1 (permalink)  
Old 04-22-2009
lavascript lavascript is offline
Regisztrált felhasználó
  
 

Join Date: Apr 2009
Hozzászólások: 47
Thumbs down Miért változó viselkedik másképp ksh script.

Srácok nekem van furcsa viselkedését a parancs kimenetet is mentett egy változó helyett egy tmp fájlt.

1. Én szopogatják parancs kimenetet változó

Minta parancs kimenet


Kód:
# 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. Aztán, hogy a nyomtatott változó képernyőn debug és a várt
3. Aztán, hogy a nyomtatott változó az awk nyilatkozatot egy teszt és ha ez nem működik, ahogy kellene.
4. Ha a kibocsátás rögzített egy átmeneti és ugyanazon awk nyilatkozat használják, de a bemenet a tmpfile akkor ez nem működik.

Az alábbi kód mutatja egyik módja, amely nem a munka és az egyik nem. Can anyone shed olyan könnyű, hogy miért?
Én természetesen próbálja használni változók helyett tmpfiles mindenhol.
Nem értem, mert a nyomtatási nyilatkozatában debug megmutatja a teljesítmény, mint várták.


Kód:
#!/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

Használja a kimeneti minta fent fog okozni az első szakaszban a mérkőzés, amikor nem kellett, de a második részben működik, és csak az, ha átmegy.

Bárki, bármilyen fényt derítsen az? IFS meg a newline standard.

Egészségére

Last edited by lavascript; 04/22/2009 at 10:23 AM..
  #2 (permalink)  
Old 04-22-2009
lavascript lavascript is offline
Regisztrált felhasználó
  
 

Join Date: Apr 2009
Hozzászólások: 47
Red face

Furcsa módon éppen a beállítás, hogy az IFS semmit úgy tűnik, hogy nem rögzítették azt.

Nem vagyok teljesen biztos benne, miért, de gyűjtöttek volna körül az elválasztó.

Megpróbáltam ezt: --


Kód:
oldIFS=$IFS
IFS="\n\r"

if [ ....blah

IFS=$oldIFS

., és észrevettem, hogy helyesen működött, de a nyomtatott eredetiről awk hiányzott n és R's.

A tárgyalás és a hiba Találtam beállítás
Kód:
IFS=""

tette munkáját.

Bárki, aki tudja, miért?

egészségére
Closed Thread

Könyvjelzõk

Téma eszközök Keresés a téma
Keresés a téma:

Részletes keresés
Megjelenítési módok Rate this thread
Rate this thread:

Posting szabályzat
Ön nem post new threads
Ön nem post válaszok
Ön nem post Csatolmányok
Ön nem szerkeszteni az üzeneteidet

BB kód van Be
Smilies vannak Be
[IMG] kód Be
HTML kód Ki
Trackbacks vannak Be
Pingbacks vannak Be
Refbacks vannak Be




Minden idő GMT -4. Az idő most 07:33 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Nyelvre lefordítva Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
A UNIX és Linux Fórum Tartalom Copyright © 1993-2009. Minden jog Reserved.Ad menedzsment RedTyger

Content Relevant URLs by vBSEO 3.2.0