2012-07-11 123 views
-1

语法:语法错误的if语句

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

什么是确切的错误信息? – 2012-07-11 15:05:36

+0

以下数据在哪里? – Tamil 2012-07-11 15:09:48

+2

对不起,但那是充满错误,没有数据附加,它不是自我解释你想做什么。并请列出您的实际脚本(我怀疑这不是) – 2012-07-11 15:14:30

回答

0

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

0

很难理解你想要执行什么。上面的代码中的一个明显的错误是,您正在尝试使用不是数字的东西进行算术比较(-ne)。

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

同样,澄清你的意图会使其他人帮助你。