if语句中的语法错误

时间:2012-07-11 15:03:27

标签: bash if-statement syntax-error

语法:

while read l
do
    export filename=$l
    if [[ `echo $filename | sed -n 's:TEST.*/TEST:&:p'` -ne 0 ]];
    then
        echo "both are same : $filename"
    else
        echo "diff: $filename"
    fi
done < scripts2.txt*

问题:通常它的工作正常。但对于以下数据,它会引发语法错误......

<TEST><![BIGDATA[$EXECUTE SCRIPT ON ALL SERVER $WELCOME#]]></TEST>

请告诉我究竟是什么问题是????

2 个答案:

答案 0 :(得分:0)

作为一般规则,请勿尝试使用正则表达式解析XML / HTML。 XML不是regular language,您将遇到无穷无尽的问题。你最终想做的是什么?可能有一种更简单的方法来解决这个问题。

答案 1 :(得分:0)

很难理解您希望执行的操作。上面代码中的明显错误是你试图用不是数字的东西进行算术比较(-ne)。

上面输入的echo ... | sed ...表达式应该生成字符串“<&>”,并且您正在测试它是否不等于零。

再一次,澄清你的意图会让其他人帮助你。