The UNIX and Linux Forums  


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
Les tableaux de awk Catwoman De programmation et de script Shell 5 07-28-2008 02:51 AM
Besoin d'aide avec awk et les tableaux fusionX De programmation et de script Shell 7 02-11-2008 06:41 PM
awk tableaux imonthejazz De programmation et de script Shell 1 09-21-2007 10:29 AM
tableaux de awk? craigsky De programmation et de script Shell 3 08-27-2007 10:13 PM
KSH et les tableaux whited05 De programmation et de script Shell 1 06-24-2005 01:07 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 Recherche sur ce Thread Rate Thread Modes d'affichage
  #1 (permalink)  
Old 10-06-2008
ricardo.ludwig ricardo.ludwig is offline
Registered User
  
 

Join Date: Mar 2008
Messages: 10
Export des tableaux en ksh

Bonjour à tous!

Pourquoi je ne peux exporter des tableaux dans ksh?
Je trie ce pour exemplo:

Dans le script parent

array [0] \u003d a
array [1] \u003d b
array [2] \u003d c

exportation tableau

Quand je vois la variable tableau dans le script de l'enfant il n'y a que l'indice de pertinence.

Par exemplo chez l'enfant script

+ (echo $ array [*])
un

Mais je veux que tous les index.
Any idea?
  #2 (permalink)  
Old 10-06-2008
Bakounine bakunin is offline Forum Staff  
Bughunter Extraordinaire
  
 

Join Date: Mai 2005
Situation: A la gauche octet de / dev / kmem
Messages: 1629
Les tableaux ne peuvent pas être exportés de la même manière peuvent être variables. Il s'agit d'un limitiation connu en Korn Shell. Vous pouvez exporter tout seul l'élément de tableau (en utilisant le nom du tableau c'est le premier élément par défaut, comme vous l'avez déjà fait l'expérience), mais pas le tableau lui-même.

Ou bien vous faire quelque chose comme:

Code:
(( iCnt = 0 ))
while [ $iCnt -lt ${array[*]} ] ; do
     export array[$iCnt]
     (( iCnt += 1 ))
done
ou vous faire un petit truc: vous pouvez passer le nom des tableaux comme un paramètre à une sous-routine, oui? Ensuite, utilisez eval pour copier le tableau dans un tableau local. Voici un exemple:

Code:
function pShowArray
{
typeset    chArrayName="$1"
typeset -i iCnt=0

(( iCnt = 0 ))                  # copy array into local (to the function) array
while [ $iCnt -le $(eval print \${#$1[*]}) ] ; do
     typeset aLocalArray[$iCnt]=$(eval print - \${$1[$iCnt]})
     (( iCnt += 1 ))
done

print - "The passed array is named: $chArrayname"
print - "It has ${#aLocalArray[@]} elements, which are:"

(( iCnt = 0 ))
while [ $iCnt -le ${#aLocalArray[@]} ] ; do
     print - "Element #${iCnt} is \"${aLocalArray[$iCnt]}\""
     (( iCnt += 1 ))
done

return 0
}

# ---- function main

typeset aArrOne[0]="foo"
typeset aArrOne[1]="bar"
typeset aArrOne[2]="wee"
typeset aArrOne[3]="duh"

typeset aArrTwo[0]="1"
typeset aArrTwo[1]="2"
typeset aArrTwo[2]="3"

pShowArray aArrayOne

pShowArray aArrayTwo

exit 0
I hope this helps. C'est un peu comme le passage de paramètres via un pointeur au lieu de passer directement, n'est-ce pas?

Bakounine
  #3 (permalink)  
Old 10-06-2008
cfajohnson's Avatar
cfajohnson cfajohnson is offline Forum Advisor  
Shell programmeur, auteur
  
 

Join Date: Mar 2007
Lieu: Toronto, Canada
Messages: 2361

Vous ne pouvez pas exporter des tableaux.

La meilleure façon de passer un tableau est de le convertir à une variable scalaire, avec les éléments séparés par un caractère qui n'est pas utilisé dans l'un des éléments. Par exemple, cela revient à utiliser une nouvelle ligne:

Code:
array_separator='
' ## adjust as needed
array=( a b c )
array_contents=$( printf "%s$array_separator" "${array[@]}" )
export array_separator array_contents
Pour le reconvertir en un tableau:

Code:
oIFS=$IFS
IFS=$array_separator
array=( $array_contents )
IFS=$oIFS
  #4 (permalink)  
Old 10-06-2008
ricardo.ludwig ricardo.ludwig is offline
Registered User
  
 

Join Date: Mar 2008
Messages: 10
Problème résolu

Bakounine et cfajohnson vous remercie beaucoup pour votre aide.
Closed Thread

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 05:59 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