2016-10-28 3 views
0

У меня есть массив как это:Итерации массив с различными трубопроводами аргументами

ARRAY=(one two three four five) 

И я хочу Ilterate этот массив в цикле. Но когда я читаю массив, я хочу изменить вывод. Например:

on 
tw 
thre 
fou 
fiv 

Так что мой вопрос: как мне это сделать? У меня есть что-то вроде этого:

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

Но это не работает. Он интерпретирует аргументы моей трубы как выход эха.

Что я могу сделать?

+0

Как определяется ваш «массив»? То, что вы показали нам, не похоже на синтаксис bash. Пожалуйста, отредактируйте свой вопрос, чтобы предоставить нам [mcve]. –

+0

@TomFenech Я попытался заполнить его дополнительной информацией. – JMAD2016

+0

@ JMAD2016 вам не хватает} после переменной 'ldapquery'. он должен читать как нечто похожее на 'cn: $ ($ {ldapquery [$ i]} | grep xxx)' –

ответ

0

Попробуйте это, я думаю, это должно сработать.

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

Спасибо за ответ, но я не мог заставить его работать. Я обновил свой вопрос, чтобы его было легче понять. – JMAD2016

Смежные вопросы