我有一个简单的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
答案 0 :(得分:0)
这似乎是prog
而不是bash脚本的问题。你必须调试程序并弄清楚它崩溃的原因。
作为一个起点,你应该找出程序崩溃的参数。您可以通过在运行prog
之前打印bash脚本中的参数来完成此操作。在崩溃之前打印的最后一个参数将是感兴趣的。希望没有随机元素,程序将始终与这些参数崩溃。
下一步是在调试器中运行程序,以便找到发生崩溃的行。如果您希望我们提供帮助,您应该发布prog
的相关源代码。