Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1610 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Script KSH et portée des variables : help

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Script KSH et portée des variables : help

n°1318523
supermexic​ain
Posté le 23-08-2012 à 15:19:27  profilanswer
 

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

mood
Publicité
Posté le 23-08-2012 à 15:19:27  profilanswer
 

n°1318525
Profil sup​primé
Posté le 23-08-2012 à 15:28:49  answer
 

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

export PROXYNAME=...

n°1318527
supermexic​ain
Posté le 23-08-2012 à 15:33:12  profilanswer
 

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

n°1318554
Profil sup​primé
Posté le 23-08-2012 à 21:49:39  answer
 

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é

n°1318557
cooki1977n
podologie-equine-libre.net
Posté le 24-08-2012 à 02:42:45  profilanswer
 

+1000


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

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Script KSH et portée des variables : help

 

Sujets relatifs
Script ksh pour SolarisAide sur script bash
Aide pour script curlScript de post installation dans un RPM
Script Bash pour récuperer seulement l'adresse IPMessage JAVA SCRIPT qui me bloque Firefox
RAID ADAPTEC 1430SA & Ubuntu 12.04TLSTableau contenant des variables - Script bash
Plus de sujets relatifs à : Script KSH et portée des variables : help


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR