questão condicional cygwin / bash

1

Estou usando o Cygwin no Windows e preciso executar condicional para comparar e imprimir o resultado. Parece simples, mas não funciona como esperado. Meu script é:

ls //NSVA/Matrical/Vitesse/REPORTS | grep .csv | grep $1 | grep -v Pull | wc -l > a
ls //10.9.214.200/Lims/LimsLZ/starlims1/done/Nitrostore_stored/$1 | grep -v Pull |wc -l > b

echo 'Count of Uploaded files in NS is' 
cat a
echo 'Count of Uploaded files in LZ is' 
cat b
if [ a == b ]; then
    echo "Count MATCH!";
else
    echo "Count does NOT MATCH!!!";
fi;

rm "a" "b"

A saída é:

C:\Users\User>ReportsUploadCheck.bat 2017-10
Count of Uploaded files in NS is
7
Count of Uploaded files in LZ is
7
Count does NOT MATCH!!!

Minhas confusões são: 7 == 7 do que por que ele imprimiu 'não MATCH'? Como corrigi-lo e verificar que quando os números são iguais, imprime "MATCH" e quando eles são diferentes, imprime "NOT MATCH"? Obrigado

    
por susik 31.10.2017 / 04:42

1 resposta

3

Quando você faz a comparação, está comparando a == b não o conteúdo do arquivo a ou b . Tente colocar os dados em variáveis:

a=$(ls //NSVA/Matrical/Vitesse/REPORTS | grep .csv | grep $1 | grep -v Pull | wc -l)
b=$(ls //10.9.214.200/Lims/LimsLZ/starlims1/done/Nitrostore_stored/$1 | grep -v Pull |wc -l)

echo "Count of Uploaded files in NS is $a"
echo "Count of Uploaded files in LZ is $b"

if [ "$a" = "$b" ]; then
    echo "Count MATCH!";
else
    echo "Count does NOT MATCH!!!";
fi

HTH!

    
por 31.10.2017 / 04:51