【发布时间】:2014-04-15 14:24:32
【问题描述】:
为什么会这样:
Output=$( tail --lines=1 $fileDiProva )
##[INFO]Output = "OK"
if [[ $Output == $OK ]]; then
echo "OK"
else
echo "No Match"
fi
这不是吗?
Output=$( tail --lines=1 $fileDiProva )
##[INFO]Output = "OK"
if [[ $Output -eq $OK ]]; then
echo "OK"
else
echo "No Match"
fi
有什么区别?? == 和 -eq 之间?
谢谢!
【问题讨论】:
-
-eq用于数值比较,==用于字符串比较。显然第二次会失败。 -
整数比较是
-eq。比较字符串是==。 -
阅读 bash 文档(
info bash,如果您的系统有它)并搜索-eq。 -
顺便说一句,
==是一个 bash 扩展——习惯于使用=将更容易为其他 shell 编写代码。 (当然,[[也是一个扩展,但它更明显;我看到很多人认为==是唯一正确的字符串比较运算符,但事实并非如此)。