【发布时间】:2015-08-04 02:05:34
【问题描述】:
我正在比较 csv 数据库和 PHP 表之间的信息。在某些情况下,PHP 表具有“空白”或“空”值。
如何确保我的if 语句中的比较实际上比较了两个值,而不是将一个值与“空白”值进行比较?
这是代码的sn-p
if [ "$CSV_PartDir" == "$PHP_PartDir" ] && [ "$CSV_PartName" == "$PHP_PartName" ]
then
echo "MATCH:[$direction / $PHP_PartDir] PN: [$part_name / $PHP_PartNam]"
match=$((match+1))
elif [ "$CSV_PartDir" != "$PHP_PartDir" ] && [ "$CSV_PartName" != "$PHP_PartName" ]
then
echo "WRONG: [$direction / $PHP_PartDir] PN: [$part_name / $PHP_PartNam]"
mismatch=$((mismatch+1))
fi
这是一个示例输出:
MATCH:[OUT / OUT] PN: [JSP-015123 / JSP-015123]
MATCH:[OUT / OUT] PN: [02118 / 02118]
MATCH:[OUT / OUT] PN: [02132 / 02132]
MATCH:[OUT / OUT] PN: [JSP-015123 / JSP-015123]
MATCH:[OUT / OUT] PN: [JSP-015123 / JSP-015123]
WRONG: [OUT / ] PN: [02132 / ]
WRONG: [OUT / ] PN: [02132 / ]
WRONG: [OUT / IN ] PN: [OH-VPS-023 / JSP-01512 ] <--- a "legitimate" comparison to be define as "wrong"
WRONG: [OUT / ] PN: [02132 / ] <--- NOT a "legitimate" comparison to be define as "wrong"
问:是否有某种方法可以检查PHP_PartName 和/或PHP_PartDir 是否实际拥有一个值,而不是if 中的任何内容。
理想情况下如果我的 PHP 值和 CSV 值不匹配,我想打印出“错误”或“不匹配”。所以我想抑制空值。
【问题讨论】:
-
如果其中一个为空,你想说
MATCH,而不是WRONG?
标签: bash text-processing