【求助】小弟有个棘手问题(将文件内容读入数组+TK作图)

愧不敢当
想表达的是,比如说 i=0, 我要算出 b[1]=a[1]-a[0], 怎么表达阿,我脑子已经搞糊涂了:confused: ,救命啊
好多的方框啊... 
更正如下:
for ((i = 0; i < ${#a
  • }; ++i)); do
        b[$((i++))]=$(( $a[$((i++))]} - ${a[$i]} ));
    done      
  • 复制内容到剪贴板
    代码:
    [color=blue]-(guest@mac:tty1)-(tmp)-
    [5648 0] %[/color] a=(11 222)
    [color=blue]-(guest@mac:tty1)-(tmp)-
    [5648 0] %[/color] i=1
    [color=blue]-(guest@mac:tty1)-(tmp)-
    [5648 0] %[/color] b[1]=$((a[i] - a[i-1]))
    [color=blue]-(guest@mac:tty1)-(tmp)-
    [5648 0] %[/color] echo ${b[1]}
    211
    [color=blue]-(guest@mac:tty1)-(tmp)-
    [5648 0] %[/color]
          
    我也是这么做的实验,可以的,但是代入循环就不行了
    #!/bin/sh
    echo " to read the txt file to a carry"
    cat /home/snake/a.txt
    i=0
    while read line; do a[$((i++))]=$line; done < a.txt
    for ((i = 0; i < ${#a
  • }; ++i)); do
                    echo " ${a[$i]}";
       done
    #echo ">>>${a[0]}"
    for ((i = 0; i < ${#a
    • }; i++)); do
          j=$(( ${i}+1 ))
          echo "$j "                                  ( j 的值可以正常显示的)
          b[$j]=$(( ${a[$j]}-${a[$i]} ));    (运行结果说我这行有语法错误)
         done
      for ((i = 0; i < ${#b
    • }; ++i)); do
            echo " ${b[$j]}";
      done
      #b[0]=$(( ${a[1]} - ${a[0]} ))   (做试验用的,可以运行)
      #echo " ${b[0]}"                       (做试验用的,可以运行)      
  • 具体信息?你的数据文件?运行结果?以后发贴能否改进一下格式?(本版置顶的帖子有说明)      
    [CODE] [/CODE]
    #!/bin/sh
    %echo " to read the txt file to a carry"
    %cat /home/snake/a.txt
    1
    5
    10
    20
    30
    %i=0
    %while read line; do a[$((i++))]=$line; done < a.txt
    %for ((i = 0; i < ${#a
  • }; ++i)); do echo " ${a[$i]}";done
    1
    5
    10
    20
    30
    %for ((i = 0; i < ${#a
    • }; i++)); do
      %j=$(( ${i}+1 ))
      %echo "$j "
      %b[$j]=$(( ${a[$j]}-${a[$i]} ));                                             (Line 19 )
      %done
      1
      2
      3
      4
      5
      6
      Line 19 ,synatx error...
      %for ((i = 0; i < ${#b
    • }; ++i)); do
      %echo " ${b[$j]}";
      %done      
  • 看不懂,能否解释一下?      
    好啊 dearvoid,太感谢了,我改正了错误,运行成功了.下面是运行的代码和结果:

    %echo " to read the txt file to a carry"
    %cat /home/snake/a.txt
    1
    5
    10
    20
    30
    %i=0
    %while read line; do a[$((i++))]=$line; done < a.txt
    %for ((i = 0; i < ${#a
  • }; ++i)); do echo " ${a[$i]}";done
    1
    5
    10
    20
    30
    %for ((i = 0; i < ${#a
    • }; i++)); do
      %j=$(( ${i}+1 ))
      %echo "$j "
      %b[$j]=$(( ${a[$j]}-${a[$i]} ));
      %done

      %for ((i = 0; i < ${#b
    • }; ++i)); do
      %echo " ${b[$i]}";
      %done
      1
      2
      3
      4
      5

      4
      5
      10
      10      
  • 多谢[url="http://www.linuxeden.com/forum/member.php?u=26605"]dearvoid[/url] ,日后望多加指点.
    发贴的格式,我也学你的啊,命令句前加%,显示的结果顶格写      
    谢谢。有时间请看一下置顶的几个帖子