2017-07-25 1 views
-1

j'ai écrit deux fonctions dans un scriptEval en pour deux arguments

for TYPE in $LIST_TYPE 
do 
    egrep -v 'dc02|vh|dc03kh00|r0' $REPORT_37 | grep CP_ASK | grep $DC |awk -F, -v type=$TYPE '$NF == type { print $1 }' > ./$DC_'type_'$TYPE 
    EMPTY_TYPE_$TYPE=$(cat $DC'_type_'$TYPE | wc -l) 
done 

le second utilisera dans un autre pour EMPTY_TYPE_ $ TYPE donc je ne

for TYPE in $LIST_TYPE 
do 
    eval echo \$EMPTY_TYPE_$TYPE 
    egrep -v 'dc02|vh|dc03kh00|r[0-2]' $REPORT_33 | grep NOT | grep $DC |awk -F, -v days=$DAYS -v version=$VERSION -v type=$TYPE '{if (($(NF-15) > days || $(NF-02)!= version) && ($(NF-20) == type)) print $1}' | eval tail -n \ EMPTY_TYPE_$TYPE > ./$DC'_TO_WORK' 
done 

le problème est que je obtenir erreur

awk -F, -v days=180 -v version=6.7 -v type=E '{if (($(NF-15) > days || $(NF-02)!= version) && ($(NF-20) == type)) print $1}' + eval tail -n '$EMPTY_TYPE_E' 

quand je ne diffusez que la commande (pas dans le script bash)

egrep -v 'dc02|vh|dc03kh00|r[0-2]' report_33.20170720.075339 | grep NOT | grep $DC |awk -F, -v days=$DAYS -v version=$VERSION '{if (($(NF-15) > days || $(NF-02)!= version) && ($(NF-20) == "A")) print $1}' | eval tail -n \$EMPTY_TYPE_$TYPE 

cela fonctionne.

+0

Ceci est du charabia complet. Vous devriez au moins montrer la valeur des variables que vous utilisez (comme '$ LIST_TYPE'), et dire ce que vous attendez de votre script. –

Répondre

0

dans la première fonction EMPTY_TYPE_ $ TYPE = $ (cat $ 'type 'DC $ TYPE | wc -l) devrait être eval EMPTY_TYPE_ $ TYPE = $ (cat' Type' $ DC $ TYPE | wc -l)

c'était le problème