2012-12-30 81 views
1

输入:1 - > 2- 如何获得的最后一个元素在管线

while read -a line; do 

    if ((line[2] < 1)); then 
    echo "Graph does not match known sites3" 
    exit 
    fi 

done < "$2" 

错误

syntax error: invalid arithmetic operator (error token is "") 

出于某种原因,线[2]不被视为数字2。 .. 我该如何解决这个问题?

+1

无法重现你的问题。你能否将确切的输入更清晰? – Mat

+0

打开shell调试以查看您的条件处理,即'set -vx'。祝你好运。 – shellter

+0

谢谢大家... – Christine

回答

3

要获得最后一个数组元素:

$ x=(a z e r t y) 
$ echo ${x[-1]} 
y 
+0

嘿....我认为那会工作..但我有另一个问题,阻止我得到这个更正你的回答建议... – Christine

+0

输入:4 a.bcd 我是要意识到这是一个非法line..cause有 第一个数字和字符串之间的2个空格..... 仅1空间被认为是合法的 现在...我的问题是,当我使用的程序:'回声“$ line”|切断-d“”-f2“ 忽略两个空格并将它们当作一个... 该怎么办? while read line;做 webName ='echo“$ line”|切-d”“-f2' 如果[[ ”$网站名称“=〜^ [A-ZA-Z0-9] * $]。];然后 \t继续; \t其他 \t回声“非法网站名单” \t退出 网络 – Christine

相关问题