Script KSH et portée des variables : help

Script KSH et portée des variables : help - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 23-08-2012 à 15:19:27    

Bonjour à tous !  
 
Voici mon script :  
 

Code :
  1. #!/bin/ksh
  2. rm new_*.txt
  3. PROXYNAME=`cat $liste | grep "Node Name:" | awk -F": " '{ print $2 }'`
  4. for liste in `ls liste*.txt`
  5. do
  6.      
  7.         cat $liste | grep VSTOR >> new_$liste
  8.             while read ligne
  9.             do
  10.                  ID=`echo $ligne | awk -F" " '{ print $1 }'`
  11.                  DATE=`echo $ligne | awk -F" " '{ print $2 }'`
  12.                  TYPE=`echo $ligne | awk -F" " '{ print $5 }'`
  13.                  AI=`echo $ligne | awk -F" " '{ print $6 }'`
  14.                  VMNAME=`echo $ligne | awk -F" " '{ print $7 }'`
  15.                  echo "$PROXYNAME|$ID|$DATE|$TYPE|$AI|$VMNAME"
  16.         done < new_$liste
  17. done


 
J'aimerais savoir comment fonctionne la portée des variables, et dans mon cas en particulier, comment faire que cette variable (PROXYNAME)
soit lisible dans la boucle while ! Car lors d'un echo, $PROXYNAME est vide... alors qu'en faisant un echo avant le while il affiche bien du contenu.
 
Merci par avance

Reply

Marsh Posté le 23-08-2012 à 15:19:27   

Reply

Marsh Posté le 23-08-2012 à 15:28:49    

Tu as essayé d'exporter ta variable au début ?
 

export PROXYNAME=...

Reply

Marsh Posté le 23-08-2012 à 15:33:12    

Yep, j'ai fait un :
 
export PROXY=$PROXYNAME
 
Hélas rien, un echo $PROXY dans le while n'affiche rien.

Reply

Marsh Posté le 23-08-2012 à 21:49:39    

salut,
 
$liste n'est définie que dans la boucle `for',
donc, PROXYNAME ne peut faire un `cat' de $liste !
PROXYNAME est vide.

Code :
  1. for f in liste*.txt
  2. do pName=$(awk -F':' '/Node Name:/{print $2}' "$f" )
  3.    grep VSTOR "$f" >>"new_$f"
  4.    awk 'BEGIN{OFS="|"} {$1=$1; print p,$0}' p="$pName" "new_$f"
  5. done

non testé

Reply

Marsh Posté le 24-08-2012 à 02:42:45    

+1000


---------------
>>>>Mon feed<<<< - Le Jour J -
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed