2016-10-28 1 views
0

ich ein Array wie diese:Iterate ein Array mit unterschiedlichen Rohrargumenten

ARRAY=(one two three four five) 

Und ich mag für Schleife in einem dieses Array Ilterate. Aber wenn ich das Array lese, möchte ich die Ausgabe ändern. Wie folgt:

on 
tw 
thre 
fou 
fiv 

Also meine Frage ist, wie mache ich das? Ich habe etwas in der Art:

for ((i=0; i<${ARRAYLENGTH}; i++)); 
do 
echo "$({ARRAY[$i]} | rev | cut -c 2- | rev)" 
done 

Aber es funktioniert nicht. Es interpretiert meine Pipe argumentes als Echoausgabe.

Was kann ich tun?

+0

Wie ist Ihr "Array" definiert? Was Sie uns gezeigt haben, sieht nicht wie eine Bash-Syntax aus. Bitte [bearbeiten] Sie Ihre Frage, um uns mit [mcve] zu versorgen. –

+0

@TomFenech Ich habe versucht, es mit mehr Informationen zu füllen. – JMAD2016

+0

@ JMAD2016 Sie fehlen} nach 'ldapquery' Variable. es sollte als etwas ähnlich wie 'cn lesen: $ ($ {ldapquery [$ i]} | grep xxx)' –

Antwort

0

Versuchen Sie dies, ich denke, das sollte funktionieren.

pipea[0]="awk -F[=,] '{print \$2}' | sed '/^\s*$/d'" 
pipea[1]="awk -F[=,] '{print \$2}' | sed '/^\s*$/d' | cut -d ' ' -f2" 
pipea[2]="awk -F[=,] '{print \$2}' | sed '/^\s*$/d' | cut -d ' ' -f1" 

for ((i=0; i<${int}; i++)); 
do 
    echo " 
    dn: cn=$(${ldapquery[$i]} | eval ${pipea[0]}),ou=mydomain,dc=saturday,dc=int 
    objectClass: inetOrgPerson 
    objectClass: top 
    cn: $(${ldapquery[$i]} | eval ${pipea[0]}) 
    sn: $(${ldapquery[$i]} | eval ${pipea[1]}) 
    givenName= $(${ldapquery[$i]} | eval ${pipea[2]}) 
    telephoneNumber $(${ldapquery[$i]} | eval ${pipea[2]})" 
done 
+0

Danke für die Antwort, aber ich konnte es nicht funktionieren. Ich habe meine Frage aktualisiert, damit sie leichter zu verstehen ist. – JMAD2016