cygwin / bash条件付き問題


1

WindowsでCygwinを使用していますが、結果を比較および出力するには条件付きで実行する必要があります。簡単に聞こえますが、期待どおりに機能しません。私のスクリプトは次のとおりです。

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"

出力は次のとおりです。

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!!!

私の混乱は次のとおりです:7 == 7なぜ「一致しない」を印刷したのですか?それを修正し、数値が等しい場合は「MATCH」を印刷し、異なる場合は「NOT MATCH」を印刷することを確認する方法は?ありがとう

回答:


3

比較するa == bと、aファイルまたはbファイルの内容ではなく比較されます。代わりにデータを変数に入れてみてください:

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!


こんにちは、イヴァン。前回Cygwinで助けてくれました。今回は、ケースを拡張して、カウントの違いだけでなく、実際の名前の違いも見つける必要があります。何らかの理由で構文が機能しません。$ aと$ bの差分を見つけるためにもう一度助けてください。
susik
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.