我有一个简单的bash循环,如下所示,它在循环中执行一些操作,并将结果移动到适当的文件夹中。如果我有少量的文件要移动脚本运行正常,但如果我使用它来执行更大的任务,它会显示我的核心转储。我也不知道原因?
#!/bin/bash
g=0.3
tau=5.5
for sim in {0..1}
do
./prog ${g} ${tau}
mkdir ../data/${sim}
mkdir ../data/${sim}/cfiles/
mkdir ../data/${sim}/rfiles/
mv ../data/cfiles/* ../data/${sim}/cfiles/
mv ../data/rfiles/* ../data/${sim}/rfiles/
done
echo "Script Done!"
Error in `./prog': munmap_chunk(): invalid pointer: 0x00000000021270f0
./run.sh: line 12: 14062 Aborted (core dumped) ./prog ${g} ${tau}
mv: cannot stat ‘../data/cfiles/*’: No such file or directory
mv: cannot stat ‘../data/rfiles/*’: No such file or directory
发布于 2017-08-06 23:00:45
这似乎是prog
而不是bash脚本的问题。你必须调试这个程序,找出它崩溃的原因。
作为起点,您应该找出程序崩溃的参数。可以通过在运行prog
之前打印bash脚本中的参数来完成此操作。在崩溃之前打印的最后一个参数将是那些有趣的参数。希望没有随机元素,程序总是会因为这些参数而崩溃。
下一步是在调试器中运行程序,这样您就可以找到崩溃发生在哪一行。如果你需要我们的帮助,你应该从prog
上发布相关的源代码。
https://stackoverflow.com/questions/45536118
复制相似问题