gpt4 book ai didi

arrays - 大型 Bash 数组或注销终止

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:23:56 27 4
gpt4 key购买 nike

我正在使用调用 Perl 脚本来执行作业的 bash 脚本。然后将该作业的结果附加到 bash 中的数组并求和。打印每次调用 Perl 脚本后的总和。脚本运行一段时间后,它会停止打印总和,而不会出现错误消息。

例子:

for i in {1..1999}; 
do
fi="$(printf "%06d" $i)_sys6_uw_lipid_data.pdb"
r_sq_value=$(perl r_value.pl "$fi")
all_r_sq_values+=($r_sq_value)

sum=$(
awk 'BEGIN {t=0; for (i in ARGV) t+=ARGV[i]; print t}' "${all_r_sq_values[@]}"
)

echo "$sum <--- SUM"

done

该脚本在一段时间内工作正常,但很长一段时间后脚本停止打印总和。

例子:

... skipping ... 
5.20884e+06 <--- SUM
5.22297e+06 <--- SUM
5.23754e+06 <--- SUM
5.25246e+06 <--- SUM
5.26714e+06 <--- SUM
5.28179e+06 <--- SUM
5.29737e+06 <--- SUM
<--- SUM
<--- SUM
<--- SUM
<--- SUM
<--- SUM

如果没有错误,我不确定这是因为脚本还是因为计算机因进入休眠而终止作业。它读取的所有数据文件都是完整的,并且可以单独使用 Perl 脚本。

如有任何建议或意见,我们将不胜感激。

谢谢

最佳答案

将其更改为:

for i in {1..1999}; 
do
fi="$(printf "%06d" $i)_sys6_uw_lipid_data.pdb"
r_sq_value=$(perl r_value.pl "$fi")
(( all_r_sq_values += ($r_sq_value) ))

sum=$(
awk 'BEGIN {t=0; for (i in ARGV) t+=ARGV[i]; print t}' "${all_r_sq_values[@]}"
)

echo "$sum <--- SUM"

done

关于arrays - 大型 Bash 数组或注销终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38487711/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com