The UNIX and Linux Forums  
Hallo und herzlich Willkommen aus den Vereinigten Staaten, die UNIX-und Linux-Foren! Vielen Dank für Ihren Besuch und die Teilnahme an unserem Global Community.

Go Back   Die UNIX-und Linux-Foren > Top Foren > Shell Programmierung und Scripting
.
Google unix.com



Shell Programmierung und Scripting Post Fragen zu ksh, csh, sh, bash, Perl, PHP, sed, awk und anderen Shell-Skripte und Shell-Scripting-Sprachen hier.

Mehr UNIX-und Linux-Forum Themen Vielleicht finden Sie hilfreiche
Faden Thread Starter Forum Antworten Last Post
Awk-Skript in DOS und Linux verhält sich anders: ( vidyak Windows und DOS: Fragen und Diskussionen 2 04-01-2009 12:07 PM
"$ Variable" Verhalten ist nicht als String in meinem Skript yabhi_22 UNIX for Dummies Questions & Answers 3 02-06-2009 01:20 PM
Script verhält sich anders auf zwei Servern mhssatya UNIX für Fortgeschrittene und Experten 5 09-13-2006 03:28 PM
Script verhält sich anders in Crontab .. newtoxinu Shell Programmierung und Scripting 4 10-01-2004 02:22 PM
Script verhält sich anders in Crontab .. newtoxinu UNIX für Fortgeschrittene und Experten 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 Thread Tools Suche diesen Thread Rate Thread Anzeige-Modi
  #1 (permalink)  
Old 04-22-2009
lavascript lavascript is offline
Registrierte Nutzer
  
 

Join Date: Apr 2009
Beiträge: 47
Thumbs down Warum ist eine Variable verhält sich anders in ksh-Skript.

Guys Ich habe seltsame Verhalten mit dem Befehl ausgegeben werden gespeichert in einer Variable einer tmp-Datei.

1. I suck Befehl Ausgabe in eine Variable

Probe-Befehl ausgegeben

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. Ich habe dann drucken, dass die Variable für die Debug-Bildschirm und seine wie erwartet
3. Ich habe dann drucken, dass die Variable auf ein awk-Anweisung in einem Test-und wenn es nicht funktioniert, wie es sollte.
4. Wenn die Ausgabe ist gefangen in einer temporären und den gleichen awk-Anweisung wird benutzt, sondern die Beiträge der tmpfile dann funktioniert es.

Das folgende Code zeigt eine Möglichkeit, die nicht funktioniert und eine, die funktioniert. Kann jeder jede Schuppen Licht, warum?
Ich bin natürlich versucht, Variablen anstelle der von tmpfiles überall.
Ich kann nicht verstehen, weil der Druck für die Debug-Anweisung zeigt die Ausgabe wie erwartet.

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
Mit Hilfe des Beispiels wird vor dem ersten Abschnitt an, wenn sie nicht, aber der zweite Teil und nur vorbei, wenn die.

Wer Aufschluss über sie? IFS ist als Zeilenumbruch als Standard.

Prost

Zuletzt bearbeitet von lavascript; am 04-22-2009 10:23 AM..
  #2 (permalink)  
Old 04-22-2009
lavascript lavascript is offline
Registrierte Nutzer
  
 

Join Date: Apr 2009
Beiträge: 47
Red face

Seltsamerweise nur Einstellung von IFS auf nichts zu haben scheint es festgesetzt.

Ich bin nicht ganz sicher, warum, aber es würde gesammelt rund um den Bereich separator.

Ich habe versucht dabei: --

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

if [ ....blah

IFS=$oldIFS
. und bemerkt, es funktioniert, aber die Druckausgabe von awk fehlte n und r's.

Durch Versuch und Irrtum gefunden i Einstellung
Code:
IFS=""
machte es Arbeit.

Wer weiß warum?

Prost
Closed Thread

Lesezeichen

Thread Tools Suche diesen Thread
Suche diesen Thread:

Erweiterte Suche
Anzeige-Modi Rate this thread
Rate this thread:

Forumregeln
Du möglicherweise nicht neue Themen
Du möglicherweise nicht nach Antworten
Du möglicherweise nicht post-Anlagen
Du möglicherweise nicht bearbeiten Sie Ihre Beiträge

BB-Code ist Auf
Smilies sind Auf
[IMG] Code Auf
HTML-Code ist Aus
Trackbacks sind Auf
Pingbacks sind Auf
Refbacks sind Auf




Alle Zeiten sind GMT -4. Es ist jetzt 10:07 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Ltd. Sprachliche Übersetzungen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Die UNIX-und Linux-Foren Content © Copyright 1993-2009. Alle Rechte Reserved.Ad Management von RedTyger

Content Relevant URLs durch vBSEO 3.2.0