首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >命令不在bash脚本中

命令不在bash脚本中
EN

Stack Overflow用户
提问于 2018-12-03 04:27:41
回答 1查看 83关注 0票数 0

我正在尝试用这个脚本计算一个简单的平均值

代码语言:javascript
复制
 for i in 1 2 3 4;
  do
    acum=0
    for n_proc in 1 2 3 4;
        do
          #obtenemos el comienzo
          start="$(date +'%s%3N')"
          mpirun -np $n_proc ./solver_async
          #obtenemos el final
          end="$(date +'%s%3N')"
          #obtenemos la duracion de la ejecucion
          duration=$(($end-$start))
          acum=$(( $acum + $duration ))

          result="$n_proc  $duration"
          #enviamos los datos al fichero result.dat
        done
        avg=$(( $acum / 4 ))
        echo $avg >> result5.dat
  done

但是它不工作,我有一个语法错误

代码语言:javascript
复制
/opt/gridengine/default/spool/compute-0-8/job_scripts/459539: line 21: syntax error near unexpected token `('
/opt/gridengine/default/spool/compute-0-8/job_scripts/459539: line 21: `          acum=(($acum+$duration));'
/opt/gridengine/default/spool/compute-0-8/job_scripts/459539: line 25: syntax error near unexpected token `done'
/opt/gridengine/default/spool/compute-0-8/job_scripts/459539: line 25: `        done'
EN

回答 1

Stack Overflow用户

发布于 2018-12-03 04:32:55

您应该将该行替换为

代码语言:javascript
复制
 acum=$acum + $duration;

使用

代码语言:javascript
复制
 acum=$(( $acum + $duration ))

和这条线

代码语言:javascript
复制
avg=$acum/4

使用

代码语言:javascript
复制
avg=$(( $acum / 4 ))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53584308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档