gpt4 book ai didi

linux - 为什么我的 shell 脚本会在这个文件中放入任意数字?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:52:26 25 4
gpt4 key购买 nike

我有一个 shell 脚本如下:

gfortran -o perm_field.exe perm_field.f90
gfortran -o creat_fehm_input.exe creat_fehm_input.f90
gfortran -o wt_concen.exe wt_concen.f90
gfortran -o statistical_analysis.exe statistical_analysis.f90 /usr/lib64/liblapack.so -llapack
#gfortran -o state_write.exe state_write.f90
#gfortran -o creat_ini.exe creat_ini.f90

nsim=8
echo $nsim > nsim.dat
rm kalman_index.dat
rm random_log_perm.dat
rm random_log_perm_initial.dat
rm water_table.dat


for j in {1..3} ; do
echo $j > kalman_index.dat
./creat_fehm_input.exe

for i in `seq 1 $nsim` ; do
echo $i
echo $i > isim.dat
./perm_field.exe
./xfehm_v3.00intl64
sed '1d' unsat_flow..00002_sca_node.dat > test
mv test scalar.dat
./wt_concen.exe
done
cp Measurement_25/Direct/meas_s$j.dat meas_s.dat
#cp meas_s$j.dat meas_s.dat
#./statistical_analysis.exe
./calc_wt.R
mv water_table.dat water_table$j.dat
cp random_log_perm_updated.dat random_log_perm$j.dat
cp random_log_perm_updated.dat random_log_perm.dat
done

在我保存的那一行

echo $nsim > nsim.dat

它还在后面的迭代中添加了一些任意数字。因此,我的整个程序无法运行。

示例,第 8 次迭代后

$ cat nsim.dat
8
-0.17957768183441541 0.95266884236814386

它应该只包含 8

编辑:我检查了 lsof |grep nsim 的输出,只有这个脚本在改变 nsim.dat,所以没有其他程序在做任何事情。

最佳答案

是因为这个bug https://gcc.gnu.org/ml/gcc-bugs/2008-12/msg00292.html

如果在 fortran 中的 write(*,*) 写入具有 6 个单元号的文件之前使用单元号 6。

所以这是一个 Fortran 文件问题。修改后效果如预期。

关于linux - 为什么我的 shell 脚本会在这个文件中放入任意数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29989598/

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