Arrays Shell中的数组操作

Arrays Shell中的数组操作,arrays,linux,shell,Arrays,Linux,Shell,在LinuxShell脚本中,我定义了一个数组和一个常量,并希望通过数学计算生成一个新数组,如 ix=(100 200 300) dh=2.5 y=$(dh*(ix-1)) 但是我无法获取新数组y,因为在运行shell srcipt时出现语法错误。如何更正它以获得结果?您必须编写一个循环。要使用小数执行算术,您需要使用像bc这样的工具,大多数shell只支持整数算术 ix=(100 200 300) y=() dh=2.5 for i in "${ix[@]}" do y+=($(ec

在LinuxShell脚本中,我定义了一个数组和一个常量,并希望通过数学计算生成一个新数组,如

ix=(100 200 300)
dh=2.5
y=$(dh*(ix-1))

但是我无法获取新数组
y
,因为在运行shell srcipt时出现语法错误。如何更正它以获得结果?

您必须编写一个循环。要使用小数执行算术,您需要使用像
bc
这样的工具,大多数shell只支持整数算术

ix=(100 200 300)
y=()
dh=2.5
for i in "${ix[@]}"
do
    y+=($(echo "$i * $dh" | bc))
done
echo "${y[@]}"
输出:

250.0 500.0 750.0

不要在shell脚本中执行此操作。使用正确的工具进行作业,例如在本例中使用Python或Perl。shell通常不支持十进制操作。您必须使用循环,shell没有任何内置的映射操作。