请问用var$i这样的变量如何使用小数

请教一下,如下的代码,输出$[var1]可以,输出$[var$i]却不行,报错:invalid arithmetic operator (error token is ",5")
怎样解决呢?
  1. i=1
  2. eval var$i=0.5
  3. echo $[var1]
  4. echo $[var$i]
复制代码

作者: yasmineyan   发布时间: 2011-05-31

你想干什么?

作者: xiaopan3322   发布时间: 2011-05-31



QUOTE:
请教一下,如下的代码,输出$[var1]可以,输出$[var$i]却不行,报错:invalid arithmetic operator (error  ...
yasmineyan 发表于 2011-05-31 17:10



这样可以吗?....
或者如楼上所言....你想干啥...

i=1
var[$i]=0.5
echo ${var[$i]}

作者: jason680   发布时间: 2011-05-31

回复 yasmineyan


注意这个中括号的使用,  [ ] 这个是测试.返回的结果是0 或者1

作者: 南极雨   发布时间: 2011-05-31

没有理解错的话,楼主要间接引用变量吧。
eval echo \${var$i}

作者: dzhxc   发布时间: 2011-05-31

回复 xiaopan3322


    我其实是想给一个二维数组赋值,关键是需要赋小数值
  1. for((i=0;i<5;i++))
  2. do
  3.     for((j=0;j<5;j++))
  4.     do
  5.         eval var$i$j=0.5 #如果赋整数 没有问题,赋小数,就在echo那句出错,我就没办法使用这个值了
  6.     done
  7. done

  8. for((i=0;i<5;i++))
  9. do
  10.     for((j=0;j<5;j++))
  11.     do
  12.         echo var$i$j $[var$i$j] #error
  13.     done
  14. done
复制代码

作者: yasmineyan   发布时间: 2011-05-31

回复 dzhxc


    非常感谢~!解决了~

作者: yasmineyan   发布时间: 2011-05-31



QUOTE:
回复  xiaopan3322


    我其实是想给一个二维数组赋值,关键是需要赋小数值
yasmineyan 发表于 2011-05-31 17:37




那是数组!!??   

i=1
j=2
var[1,2]=0.5
echo ${var[$i,$j]}

作者: jason680   发布时间: 2011-05-31



QUOTE:
回复  dzhxc


    非常感谢~!解决了~
yasmineyan 发表于 2011-05-31 17:40




    好像没有解决啊,你要是想用数组的话,用法错了哎。
   间接引用看上去像数组,也能实现类似的功能。

作者: dzhxc   发布时间: 2011-05-31

回复 jason680


    哦 这个是正规多了。。我还在学 谢谢指教~

作者: yasmineyan   发布时间: 2011-05-31