linux - bash 中的浮点/科学记数法值错误

标签 linux arrays bash floating-point

下面这段代码有问题

THRESH_SERIE=("1" "5E-1" "1E-1" "5E-2" "1E-2" "5E-3" "1E-3" "5E-4" "1E-4") 

for ((i=0;i<${#THRESH_SERIE[@]};i++))
do

    let thresh=$(echo ${THRESH_SERIE[$i]})
    $EXEC 1 $N ${thresh} 0 0 >> $OUTPUT
done

如果我尝试运行脚本,它将为数组中的每个值返回如下错误:

/bench_new.sh: line 40: let: thresh=5E: value too great for base (error token is "5E")

我也尝试过使用 float (如“0.1”),但它给出了不同的错误。我该如何解决这个问题?

最佳答案

这里的数组没有特别的原因(除了它们玩起来“有趣”):

THRESH_SERIE="1 5E-1 1E-1 5E-2 1E-2 5E-3 1E-3 5E-4 1E-4" 

for thresh in ${THRESH_SERIE}
do
  $EXEC 1 $N ${thresh} 0 0 >> $OUTPUT
done

关于linux - bash 中的浮点/科学记数法值错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14362846/

相关文章:

linux - 如何在同一个文件中打印文件名?

c - 处理需要访问特权端口 < 1024 的应用程序的标准方法是什么?

linux - x86 NASM Linux 程序集中的 ATOI 问题

arrays - 查找数组中最大落差的算法

java - O(n) 算法在从 1 到 n(不是奇数)的连续整数数组中找到奇数输出

bash - 使用内部命令和正则表达式组引用的 Sed

Bash 脚本从文本生成 csv 文件

linux - 如何使用sed编辑保存在字符串中的文件?

JavaScript:删除对象内的数组元素

linux - 列出文件及其基目录