if [[ $TEST = '(0 rows affected)' ]]; then
echo "NOT FOUND"
else
echo "FOUND"
fi
就在此之前,我echo $TEST
提供输出(0 rows affected)
然而,该脚本会保持评估并回显FOUND
,而这不应该是这种情况。
我在这里缺少什么? :)
答案 0 :(得分:2)
对glob模式使用带引号的变量:
if [[ "$TEST" = *'(0 rows affected)'* ]]; then
echo "NOT FOUND"
else
echo "FOUND"
fi
由于变量TEST
shell中存在空格,因此将其视为多个参数。
此外,TEST
变量在(0 rows affected)
之前有一些空格。
答案 1 :(得分:0)
没有看到你的脚本有任何问题...你正在使用哪个shell我在bash,ksh和sh中试过...所有都给出了正确的结果....见下文......
$cat a.sh
TEST='(0 rows affected)'
if [[ $TEST = '(0 rows affected)' ]]; then
echo "NOT FOUND"
else
echo "FOUND"
fi
$bash a.sh
NOT FOUND
$ksh a.sh
NOT FOUND
$sh a.sh
NOT FOUND