The UNIX and Linux Forums  
Bonjour et bienvenu par les États-Unis à la UNIX et Linux Forums! Merci de votre visite et vous joindre à notre communauté mondiale.

Go Back   Les systèmes UNIX et Linux Forums > Top Forums > De programmation et de script Shell
.
google unix.com



De programmation et de script Shell Posez vos questions à propos de KSH, CSH, SH, BASH, PERL, PHP, SED, awk et d'autres scripts shell et les langages de script shell ici.

Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
Fil Thread Starter Forum Réponses Last Post
Awk script sous DOS et Linux se comporte différemment: ( vidyak Windows et DOS: Questions & Discussions 2 04-01-2009 11:07 AM
"$ variable" n'est pas se comporter comme une chaîne de caractères dans mon script yabhi_22 UNIX pour les nuls Questions et réponses 3 02-06-2009 01:20 PM
Script comportent différemment sur les deux serveurs mhssatya UNIX for Advanced & Expert Users 5 09-13-2006 02:28 PM
Script comporter différemment dans Crontab .. newtoxinu De programmation et de script Shell 4 10-01-2004 01:22 PM
Script comporter différemment dans Crontab .. newtoxinu UNIX for Advanced & Expert Users 1 09-30-2004 04:00 PM

 
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Recherche sur ce Thread Rate Thread Modes d'affichage
  #1 (permalink)  
Old 04-22-2009
lavascript lavascript is offline
Registered User
  
 

Date d'inscription: avril 2009
Posts: 47
Thumbs down Pourquoi est une variable comportent différemment dans ksh script.

Guys i ont un comportement étrange avec la commande de sortie sont enregistrées dans une variable au lieu d'un fichier tmp.

1. I suck sortie de commande dans une variable

Exemple de sortie de commande

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. J'ai alors l'impression que la variable à l'écran de debug et de son comme prévu
3. J'ai alors l'impression que la variable à un awk dans un état de test et si ça ne fonctionne pas comme il le devrait.
4. Si la production est capturée dans un fichier temporaire et le même awk est utilisée mais la prise d'entrée de la tmpfile il fonctionne.

Le code ci-dessous montre une façon qui ne fonctionne pas et celui qui le fait. Peut-on jeter toute la lumière sur les raisons pour lesquelles?
Je suis évidemment d'essayer d'utiliser des variables plutôt que de tmpfiles partout.
Je ne comprends pas parce que le print pour debug montre la sortie comme prévu.

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
Utilisation de l'exemple de sortie ci-dessus cause la première partie de match où il ne devrait pas, mais la deuxième partie de travaux et passe par la, si.

Toute personne remise toute la lumière sur elle? IFS est définie en tant que retour à la ligne standard.

À la vôtre

Dernière édition par lavascript; au 04.22.2009 09:23 AM..
 

Bookmarks

Thread Tools Recherche sur ce Thread
Recherche sur ce Thread:

Recherche avancée
Modes d'affichage Rate this thread
Rate this thread:

Règles de messages
Tu mai pas de nouvelles discussions: nonoui
Tu mai pas envoyer des réponses:
Tu mai pas envoyer des pièces jointes
Tu mai pas modifier vos messages

BB code est Sur
Smilies sont Sur
[IMG] code est Sur
Le code HTML est Hors tension
Trackbacks sont Sur
Pingbacks sont Sur
Refbacks sont Sur




Toutes les heures sont au format GMT -4. Le temps est maintenant 02:09 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traductions Langue Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Les systèmes UNIX et Linux Forums Content Copyright © 1993-2009. Tous droits Reserved.Ad de gestion par RedTyger

Content Relevant URLs par vBSEO 3.2.0