【问题标题】:Multiply 2 array index variables shell programming乘以2个数组索引变量shell编程
【发布时间】:2014-01-29 15:13:58
【问题描述】:

在给定以下情况下,我如何将 2 个数组索引变量相乘

foo=(1 2)
bar=(0.1 0.2)

foobar=$((foo[1]*price[1])) # this is wrong

echo "$foobar"

当前输出:0

正确/预期的输出:0.4

【问题讨论】:

  • 我认为你在 bash 中不会得到非整数。 echo "$bar[1]" 能带给你什么?
  • 对不起,我刚开始学习 shell 编程,对语法很困惑
  • 我的意思是,如果你拿出你拥有的回声线并把它放在我建议的那个,你会得到什么? (我目前在 Win 系统上打字,目前无法使用 bash,否则我会检查自己。)

标签: shell debugging ubuntu command-line


【解决方案1】:

bash 只做整数运算。对于浮点数学,通常的做法是使用bc

$ foobar=$(echo "${foo[1]} * ${bar[1]}" | bc)
$ echo $foobar
.4

注意取消引用数组元素所需的语法:需要大括号将变量名和索引组合在一起。

【讨论】:

  • 感谢您的帮助!!!取消引用数组元素需要什么语法??
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-05-03
  • 1970-01-01
  • 1970-01-01
  • 2016-08-16
  • 1970-01-01
  • 2019-03-14
  • 1970-01-01
相关资源
最近更新 更多