我使用調用Perl腳本執行作業的bash腳本。然後將該作業的結果追加到bash中的數組中並進行求和。打印每次Perl腳本調用後的總和。腳本運行一段時間後,它會停止打印總和,而不會顯示錯誤消息。大Bash陣列或註銷終止
例子:
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腳本。
任何建議或意見表示讚賞。
謝謝
'fi'並不似乎是一個好變量名稱(見if..fi) –
我有正確的「網絡連接」變量,但腳本仍然有相同的問題。 –
我懷疑你已經達到了awk參數列表長度的限制。很容易將數組中的所有元素添加到一起而不使用awk,並且我建議您在shell代碼中執行此操作。 – Borodin