The UNIX and Linux Forums  
Ciao e benvenuto da parte degli Stati Uniti al UNIX e Linux Forum! Grazie per la visita ed unirsi alla nostra Comunità Globale.

Go Back   UNIX e Linux Forum > Inizio Forum > Shell scripting e di programmazione
.
google unix.com



Shell scripting e di programmazione Pubblica domande su KSH, CSH, SH, Bash, Perl, PHP, sed, awk e da altri script di shell e linguaggi di scripting shell qui.

Più di UNIX e Linux Forum Argomenti potreste trovare utili
Filo Thread Starter Forum Risposte Ultimo Post
Awk script in DOS e Linux si comporta in modo diverso: ( vidyak Windows e DOS: Problemi & Discussioni 2 04-01-2009 12:07 PM
"$ variabile" non si comporta come una stringa nel mio script yabhi_22 UNIX for Dummies Domande & Risposte 3 02-06-2009 01:20 PM
Script comportarsi diversamente su due server mhssatya UNIX e avanzata per utenti esperti 5 09-13-2006 03:28 PM
Script di comportarsi in modo diverso in Crontab .. newtoxinu Shell scripting e di programmazione 4 10-01-2004 02:22 PM
Script di comportarsi in modo diverso in Crontab .. newtoxinu UNIX e avanzata per utenti esperti 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 Cerca in questo Thread Rate Thread Modalità di visualizzazione
  #1 (permalink)  
Old 04-22-2009
lavascript lavascript is offline
Utente Registrato
  
 

Iscriviti Data: aprile 2009
Interventi: 47
Thumbs down Perché è una variabile di comportarsi in modo diverso in ksh script.

I ragazzi hanno un comportamento strano con il comando di uscita di essere salvato in una variabile al posto di un file tmp.

1. I succhiare il comando di uscita in una variabile

Esempio di comando di uscita

Codice:
# 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. Ho quindi stampare a schermo variabile che per il debug e la sua, come previsto,
3. Ho quindi stampare una variabile che awk in uno stato di prova e se non funziona come dovrebbe.
4. Se l'output viene catturato in un temporanei e la stessa dichiarazione awk è usato ma tenuto in ingresso dal tmpfile allora funziona.

Il seguente codice illustra un modo che non funziona e quello che fa. Chiunque può gettare luce come per qualsiasi motivo?
Sono, ovviamente, cercando di utilizzare le variabili invece di tmpfiles ovunque.
Non riesco a capire perché la stampa dichiarazione per l'output di debug mostra come previsto.

Codice:
#!/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
Utilizzando il campione in uscita di cui sopra farà sì che la prima sezione per la partita, quando non dovrebbe, ma la seconda sezione di lavori e solo se la passa da.

Chiunque capannone qualsiasi luce su di esso? IFS è impostata come newline come standard.

Salute

Ultimo a cura di lavascript; al 04/22/2009 10:23 AM..
  #2 (permalink)  
Old 04-22-2009
lavascript lavascript is offline
Utente Registrato
  
 

Iscriviti Data: aprile 2009
Interventi: 47
Red face

Abbastanza stranamente solo impostazione IFS a nulla sembra essere determinata.

Io non sono del tutto sicuro perché, ma avrebbe raccolto circa il separatore di campo.

Ho provato a fare questo: --

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

if [ ....blah

IFS=$oldIFS
. notato e ha funzionato correttamente, ma la stampa da awk mancava n e r's.

Attraverso prove ed errori che ho trovato l'impostazione
Codice:
IFS=""
ha reso il lavoro.

Chi sa perché?

salute
Closed Thread

Segnalibri

Thread Tools Cerca in questo Thread
Cerca in questo Thread:

Ricerca Avanzata
Modalità di visualizzazione Vota questo thread
Vota questo thread:

Distacco regolamento
Tu non può post nuovo thread
Tu non può inviare una risposta
Tu non può postare allegati
Tu non può modificare i tuoi post

BB codice è Su
Smilies sono Su
[IMG] codice Su
Codice HTML è Chiuso
Trackbacks sono Su
Pingbacks sono Su
Refbacks sono Su




Tutti gli orari sono GMT -4. La data di oggi è 06:52 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traduzioni Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX e Linux Forum Content Copyright © 1993-2009. Tutti i diritti Reserved.Ad di gestione da RedTyger

Contenuti pertinenti URL da vBSEO 3.2.0