嗨,我有这个bash脚本:
for mesh in meshFiles/*.unv;
do
scaleFolder=`echo $mesh|cut -d'_' -f 1|cut -d'/' -f 2`
mkdir $scaleFolder
caseFolder="$scaleFolder/`basename ${mesh%.*}`"
mkdir $caseFolder
cp -r baseCase/* $caseFolder
cp $mesh $caseFolder/mesh.unv
echo "runing" `basename $mesh`
cd $caseFolder
./Allrun
cd ../..
done
并适用于该文件夹中的所有文件,问题是该过程很慢,因此我想在 meshFile 文件夹中放入更多文件,并避免刹车并重新启动循环每个新文件。
答案 0 :(得分:1)
解决此问题的一种方法是编写一个make文件。这样一来,您将无法在进程运行时添加文件,但可以在脚本完成后重新运行,而不必重新处理已经处理过的内容,即不是从头开始。这很简单,在某些情况下可能就足够了。
如果确实需要在运行时添加文件,则需要具有一个监视进程,该进程可以监视文件夹内容并生成新文件的处理任务。这也需要一些任务管理(以了解哪些是新的/正在进行的/完成的)。这并不容易,所以我建议先尝试 make 。
这是one intro,但如果您用Google搜索一点,还有更多。本示例是关于在.c源代码文件发生更改(但make是通用的)时编译C代码,并且可以运行您要求其运行的任何命令(例如,如果任何.unv更改,或者如果出现一个新的。)